iOS盲人模式小结

打开盲人模式

系统:10.0.1,手机型号:iphone5
流程如下:
flo

关闭盲人模式

  1. 如果屏幕没有黑屏,直接关闭switch按钮就可以.
  2. 黑屏状态.三个手指同时触碰屏幕,注意是同时哦,连续点击屏幕三下。如果无效可以试试按三下home键。注意一定在语音提示手机解锁的状态操作。这个步骤之后手机屏幕亮起。

盲人模式使用经验

描述元素相关

  • accessibilityLabel 用来描述控件是什么.UIButton和lable会默认从title和text中获取,textField从输入框的内容获取..当元素获得焦点时会第一个播放.

  • accessibilityTraits 元素的特征.如按钮,链接等.元素获取焦点后会在第二个播放.由于会播放按钮等,因此accessibilityLabel可以不同添加链接的描述,直接使用系统描述的特征,如:lable为登陆,traint为按钮,系统会播放”登陆->按钮”.

  • accessibilityHint 用来描述一个动作.如下载链接,购买商品等.第三个朗读,默认为nil

  • accessibilityFrame 元素的frame.当元素过小时可以通过设置该frame使得容易点击,这个不会改变app的UI.如果不想让系统读取到该元素,可以设置frame为CGRectZero,效果等同于设计lable,hint为”“,traints为none.

  • accessibilityValue 元素的值.用在UISlider,UITextField等组件上.用来描述元素的值

  • isAccessibilityElement 设置是否支持盲人模式
    isAccessibilityElement默认是false,UIKit默认打开,但是UIImageView需要单独打开.

  • accessibilityElementHidden 不在读取该元素.isAccessbilityElement为NO只读取label,accessibilityElementHidden设为yes后lable也不再读取.

相关事件

Actions

  • Activate 单指轻点两次. 表示激活控件,如按钮点击

  • Escape. 单指 Z-shaped 手势一般用于退出模态界面或者返回导航的上一页界面

  • Magic Tap. 双指轻点两次触发 most-intended action.

  • Three-Finger Scroll. 触发水平滚动,如UIScrollView

  • Increment. 单指向上滑动,需要设置accessibilityTraits为UIAccessibilityTraitAdjustable,否则对应的方法不会被调用

  • Decrement. 单指向下滑动,需要设置accessibilityTraits为UIAccessibilityTraitAdjustable,否则对应的方法不会被调用

主动设置

  • 设置焦点元素
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, element)

直接读出一段文字

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"read me");

是否开启了盲人模式

UIAccessibilityIsVoiceOverRunning()

监听盲人模式状态改变

通知名称为:UIAccessibilityVoiceOverStatusChanged

自定义绘制

  • 如果view的元素是绘制上去的,可以实现这种代理方法
    可以使用返回
- (NSArray *)accessibilityElements {

    if (_array != nil) {
        return _array;
    }

    _array = [NSMutableArray array];

    UIAccessibilityElement *ele = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:self];
    ele.accessibilityFrame = CGRectMake(CGRectGetMinX(self.frame), CGRectGetMinY(self.frame), CGRectGetWidth(self.frame)/2.0, CGRectGetHeight(self.frame));
    ele.accessibilityLabel = @"内容1";
    [_array addObject:ele];

    UIAccessibilityElement *ele2 = [[UIAccessibilityElement alloc] initWithAccessibilityContainer:self];
    ele2.accessibilityFrame =  CGRectMake(CGRectGetMaxX(ele.accessibilityFrame), CGRectGetMinY(self.frame), CGRectGetWidth(self.frame)/2.0, CGRectGetHeight(self.frame));
    ele2.accessibilityLabel = @"内容2";
    [_array addObject:ele2];
    return _array;
}
- (NSArray *)accessibilityElements {
    return self.array;
}

- (BOOL)isAccessibilityElement {
    return NO;
}

- (NSInteger)accessibilityElementCount {
    return self.array.count;
}

- (id)accessibilityElementAtIndex:(NSInteger)index {
    return [self.array objectAtIndex:index];
}

关于webView

webView不需要单独设置,开启后系统会自动设置,无法读取的内容需要改成lable等标签

参考文档

苹果文档
打开盲人模式

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值