- 性技巧 蒙特卡洛红土大家赛:传统、经典与异日的可能性|网球|大满贯冠军|
- 果肉系列 成东谈主游戏哪个好 热点成东谈主游戏精选
- 1314酒色网 iOS无绝交适配西瓜视频Voice Over奉行示例
- 真实迷奸女高中生 全市开垦区振兴三年步履谋划激动会议强调:负重致纷乱合手
- 庭院里的女人 山东:“王人”心“鲁”力谱写节水“大著述”
1314酒色网 iOS无绝交适配西瓜视频Voice Over奉行示例
为了惩处老年东谈主、残疾东谈主等群体在使用互联网等智能时期时遭遇的艰难,自 2021 年春季驱动,西瓜视频开展了无绝交与适老化改良专项活动。陆续完成了无绝交影院、色弱模式、护眼模式、大字号模式、外挂字幕等多个改良需求1314酒色网,充分自尊了视力绝交、听力绝交以及老年东谈主等特别群体的需求。 一、Voice Over 简介Voice Over 旁白是苹果手机自带的器具。它能让东谈主们在不看屏幕的情况下了解页面实验和信息。盲东谈主用户在使用 iOS 开发时依赖 Voice Over 提供听觉反馈。苹果在自研的各样系统中均完毕了 Voice Over 功能,如 OS X,iOS,watchOS 等等。透过 Voice Over 视障用户不错在不同开发上赢得研究的体验。 使用旁白来走访西瓜视频的用户有许多,“盲东谈主小马哥”等于其中的一位,感兴致的同学不错通过不雅看他的视频进一步了解旁白。 二、Voice Over 使用指南本节先容了 Voice Over 开发者庸俗需要配置的开发环境。并以西瓜视频为例,演示了 Voice Over 的基本操作。 Voice Over 开发环境配置为了测试的方便,忽视开发者不错将支持功能快捷键成立成 VoiceOver 的切换,只需要连按三次右侧开重要就能开启/关闭 VoiceOver。 下方旅途中的 “通用” 适用于低版块系统,高版块系统通过成立-> “支持功能” 即可找到旁白 开启/关闭 Voice Over(旁白) 成立 -> “通用” -> “支持功能” -> “VoiceOver”(旁白) 成立连按三次右侧开重要开启/关闭 Voice Over(旁白) (开启后不错方便的翻开/关闭旁白) 成立 -> “通用” -> “支持功能” ->“支持功能快捷键”,勾选 Voice Over 功能。 开启 Voice Over+字幕面板 (开启后不错方便的稽查旁白的一谈诵读案牍) 成立 -> “通用” -> “支持功能” ->“VoiceOver”->“字幕面板” Voice Over 基本使用 —— 以西瓜为例Voice Over 常用手势详解 这里主要例举出 iOS 系统和西瓜视频中最常用的手势,齐全操作不错参照苹果官方文档 https://support.apple.com/zh-cn/guide/iphone/iph3e2e3a6d/15.0/ios/15.0 初学手势 使用手势进行元素筛选轻点或触摸样式——遴荐并诵读样式 向右轻扫——遴荐下一项 向左轻扫——遴荐上一项 三指向某个成见滑动——翻页操作,不错使 UIScrollView(包括 TableView、CollectionView)向某个成见翻动一页 使用手势反馈元素事件轻点两下——反馈当前元素的事件 轻点三下——双击当前所选元素 双指轻点两下——反馈开发者界说的快捷事件 (如播放视频、暂停视频等) 双指驾御滑动(快速往返转移双指三次,造成“Z”字形)——关闭弹窗或复返到上一级页面 双指轻点两下并按住——用户自界说元素称号 进阶手势 使用手势快速筛选元素四指轻点屏幕顶部隔邻——遴荐屏幕上的第一项 四指轻点屏幕底部隔邻——遴荐屏幕上的终末一项 使用“旁白”转子您不错使用转子来革新“旁白”成立(如语速、遍历方法等),在屏幕上从一个样式跳到下一个样式,以及遴荐特别输入方法(如“盲文屏幕输入”或“手写”)等。关联驻扎信息,请参阅在 iPhone 上使用转子阻隔“旁白” https://support.apple.com/zh-cn/guide/iphone/iph3e2e3a6d/15.0/ios/15.0 通过以下手势来使用转子。 双指动掸——中式转子成立 朝上轻扫——移到上一项或调高(取决于转子成立) 向下轻扫——移到下一项或调低(取决于转子成立) 三、快速适配 Voice Over / 无绝交念念让 App 达到无绝交基本可用并降低事,通过成立无绝交焦点、成立无绝交案牍、调度焦点轨则三步不错完成绝大多半的无绝交适配职责。本节对以上三步适配进行了快速初学的先容,并将西瓜首页行为实战案例为天下素质。 成立无绝交焦点焦点是视力绝交用户走访应用的惟一阶梯,Voice Over 开启时,如若一个元素莫得被成立为焦点,那么该元素在屏幕中将不成被走访。用户不错通过在屏幕上转移焦点来“浏览”实验。正确的焦点标注和焦点轨则当略让读屏软件用户赢得更好的体验。 翻开旁白后,系统会使用玄色框体框选当前的焦点。通过轻触某个位置 或 单指驾御轻扫即可切换焦点。 哪些场景需要焦点:除遮挡性组件除外的功能性组件皆需要焦点,如标题、作家头像、点赞、保藏、批驳、更多等。 哪些场景需要团结焦点:功能研究且距离近的焦点需要团结。如作家称号、作家头像(功能皆是跳转个东谈主主页,且距离近)。 需要高效筛选信息的场景需要团结,保留团结焦点的主功能,其余功能添加到转子中,如 Feed。具体参照各业务方联想。 若何成立无绝交焦点:针对绝大多半情况,咱们不错欺诈以下的几个属性来调度焦点。 isAccessibilityElement:使用该属性不错调度单个元素的无绝交可见性。对于大多半 UI 基本元素,当父控件为无绝交元素时,子控件将无法获焦。 accessibilityElementsHidden:使用该属性不错调度单个元素过火 subviews的无绝交可见性,一般用于屏蔽整个这个词组件。 accessibilityViewIsModal:使用该属性不错使该元素在同级 view中保握惟一可见性。常见场景见焦点被袒护时仍然不错被走访。 成立无绝交案牍好的无绝交案牍不错让用户明晰的了解到当前焦点的野心,一般来说咱们不错将元素按照按钮、输入框、搜索框等来分袂,从而进行标注。 当咱们参照“开发环境配置”配置好字幕后,旁白诵读的案牍将清晰在屏幕的底部。 无绝交案牍需要能准确形色一个焦点的功能及当前的景况 (如 已采选、点赞、标签栏)。如若一个焦点包含多个不同的实验,应当按照信息优先级,将该焦点内一谈肉眼可见信息一谈诵读。 若何配置无绝交案牍:从代码层面来看,咱们不错通过以下的几个属性来成立无绝交案牍。 accessibilityLabel:一般来说,恣意元素皆需要成立 Label,Label 应当为短语 如:点赞、保藏; accessibilityValue:(可选)用于通常变化的标签数据类案牍,举例 视频的点赞按钮的具体数值 (共 xxx 东谈主); accessibilityTraits:当元素行为一个无绝交焦点时,咱们需要形色该焦点的类别,如按钮、已选中等。此时需要使用 Traits 对元素进行象征; accessibilityHint:(可选)当元素标签无法明确指转移作末端的时刻,应该给出一个领导; accessibilityFrame:当元素的焦点过小,需要手动调度焦点到较大值的时刻,不错使用 Frame VoiceOver 会把这几个属性谄谀起来,一般情况诵读轨则为accessibilityLabel→accessibilityValue→accessibilityTraits→accessibilityHint。 特例:accessibilitytraits中包含UIAccessibilityTraitSelected则会在最前线诵读“已采选”。 调度焦点轨则焦点轨则应该谨守 从左往右 & 从上到下。往日情况下,焦点的轨则与 SubViews 的轨则一致,咱们无需手动置顶焦点轨则。如若焦点轨则出现问题,咱们不错欺诈 UIAccessibilityContainer 来调度屏幕中焦点的轨则。 accessibilityElements:通过该属性,咱们不错指定一个元素包含的整个无绝交子元素。 UITableViewCell 中重设需要格外严慎,可能会出现焦点轮回问题。 以下图为例,如若 C、D、E 是无绝交可视元素,通过如下成立咱们就能使无绝交元素按照 D、E、C 的轨则来摆列。 底下以西瓜首页为示例,为天下演示无绝交的基础适配。 以西瓜首页为例,从上至下咱们主要有五个区域需要成立焦点。分别是 搜索栏、频谈栏 & 频谈裁剪器、作家动态栏 (Story)、视频卡片 (卡片为一个焦点,用户通过转子进行其他操作)、底部 Tab 遴荐器。底下针对每个部分进行无绝交适配的阐明注解。 心电图 偷拍 搜索栏 频谈栏 & 频谈裁剪器 作家动态栏 视频列表 四、Voice Over 有计划公约先容 UIAccessibility 无绝交标签标注 UIAccessibilityAction 无绝交手势反馈 UIAccessibilityFocus 无绝交焦点反馈 UIAccessibilityContainer 无绝交自界说焦点 五、常见问题与惩处决议该部分凭证西瓜简直的业务奉行,列举了数个常见无绝交问题的栽种决议。举例:焦点野心不解确、焦点乱跳问题、嵌套容器 ScrollView 无法奴才滚动等。 焦点缺失/焦点冗余焦点缺失是无绝交 Bug 中最基础但最严重的问题。极点情况情况下会产生致命的防止性的 Bug(如复返按钮缺失焦点)。庸俗而言居品上一些按钮、联接、勾选框、图片、裁剪框等需要焦点方便用户交互。 此外焦点冗余也会严重影响用户的使用体验,一些遮挡性元素焦点冗余后,用户的信息筛选效能会严重裁汰。庸俗而言,用户点击后无明确反馈事件的组件不应该成为焦点。 「惩处方法」:一般情况下,系统会自动给门径控件 UIButton 等交互控件添加焦点,其他自界说控件需要手动添加/革新。一般情况下手动指定属性isAccessibilityElement为 YES 或者 NO 可惩处该问题。 焦点过细/焦点团结焦点团结指的是有研究野心、研究操作的,或具有组合意旨的组合视图,焦点莫得团结的情况,问题形色为“团结焦点”。举例,好友列表中的好友头像和昵称应团结为一个焦点,二者功能皆同样,皆是跳转到个东谈主贵府界面。 「惩处方法」:在需要团结焦点的 superView 处将 isAccessibilityElement 成立为 YES。 self.isAccessibilityElement = YES; 焦点信息极端 (野心不解确,信息冗余等)焦点野心不解确是指页面中的焦点仅诵读出基本案牍,然则未诵读该控件的类型(按钮、标签栏、联接等),或者未诵读该焦点反馈后会发生的事件(轻点两下插足细则页播放视频等)。 「惩处方法」:参照居品的无绝交标注标准。调度问题焦点的 accessibilityLabel、accessibilityTraits、accessibilityHint 等字段,从而使焦点信息诵读准确。 焦点停留不妥页面刷新后跑焦点、对视图或控件进行操作后跑焦点,翻开新界面焦点停留的位置不恰当,问题形色为“焦点停留不妥”。举例插足一些页面后,焦点默许停留在原位置,或者停留在新页面的复返按钮。 「惩处方法」:在插足界面时将 VoiceOver 焦点定位到特定控件。不错使用UIAccessibilityPostNotification发送见知给特定控件,转换 voiceOver 焦点。 焦点轨则极端问题焦点轨则不合适逻辑轨则时,庸俗形色为:“焦点轨则不合适逻辑轨则”;焦点轨则不合适视觉轨则时,形色为“焦点轨则不合适视觉轨则”。 「惩处方法」:手动成立 accessibilityElements。极点场景下不错主动完毕 UIAccessibilityContainer 公约。 焦点选中时乱跳问题该问题主要发生在 CollectionView 上,一般表象为调度一个 Cell 的选中态并 reloadData,焦点会先迁移到一个随即的位置(一般是选中 Cell 的后一个),尔后再跳回正确的位置。 「惩处方法」:慎用 UICollectionView、UITableView 的 reloadData。当需要刷新 Cell 的选中景况时,尽量我方完毕一个 updateVisibleCell。reloadData 时会导致 Cell 随即复用,最终产生焦点乱跳的相等。 浮窗问题 / 焦点被袒护时仍可走访在西瓜视频中,浮窗有多种不同的存在体式,如 XIGAlert(苦衷弹窗等)、XIGToast(网罗相等等)、半屏浮窗(键盘、明晰度面板、倍速面板等)。在弹窗出刻下,用户不错通过驾御滑动切换焦点至不成视的视图。这些视图产生的有计划事件可能会使面目崩溃,发生一些意象之外的事情。 「惩处方法」:一般作念法为让底层控件元素失去焦点来达到屏蔽底层元素的后果,将灰色变暗区域设为单个大焦点,标签设为 “关闭” 或 “收起” 等领导,双击可关闭浮层。弹窗或弹层时,自动使表层容器的第一控件(如标题或见知实验)获取焦点,视障用户无用二次切换焦点,更合适视障用户使用体验,愈加体现东谈主性化。 对蒙层成立属性,会使蒙层的同级 view不反馈 VoiceOver,而蒙层的子 view 可反馈。如下图所示,如若但愿 E 不错被走访,CD 不成被走访,此时需要成立 B 的accessibilityViewIsModal为 YES。 在 UICollectionView 中,嵌套一个 UIScrollView 或者 UITableView,焦点在 TableView、ScrollView 中滑动时,不会发生自动滚动,从而导致页面发生白屏等表象。 「惩处方法」:使用 accessibilityActivate,在焦点聚焦到一个 Cell 上的时刻,手动调用 scrollToRowAtIndexPath: atScrollPosition: animated: 如若一个 Cell 中包含多个功能,Cell 还需要进行转子适配。 横滑拖拽问题(手势替代问题)在应用中有许多场景有横滑手势,如横滑删除,横滑裁剪等。此类事件在 Voice Over 开启时无法被反馈。故需要通过一些其他技能使用户大略走访到横滑的功能。 「惩处方法」:使用转子对功能进行改良。 以上等于iOS无绝交适配西瓜视频Voice Over奉行示例的驻塌实验1314酒色网,更多对于iOS适配Voice Over的贵府请护理剧本之家其它有计划著作! 您可能感兴致的著作:iOS开发教程之常见的性能优化技巧iOS开发————详解适配iOS10问题 |