Accessibility Development (17) of Jingdong APP an optimization case to explain

Test Range

Home, shopping cart, order, cashier, shop, recommended position, search, my Jingdong

Priority Definition

Maximum: forming a core flow blockage to the main link operations, such as control no focus control untagged

High: The core has a significant effect on the link a user operation, but not Chen duct obstruction defects, such as failure to focus sequential logical order, non-blocked main flow in the core operation of the user link

In which: the main flow in the core of the link has a certain impact user experience defects, as a control having a plurality of focus, or significantly affect the user experience defects into the mainstream

Low: main flow in the core link only enhance the user experience a sense of having a defect, such as a decorative element, the main flow of the core or the user experience defective link has a certain impact

Examples Defect Analysis

Android end of the main types of defects concentrated in: reading deletion, no label (alternative text, which is not described in the alternative text content), reset the focus and control the deletion, wherein:

Case 1: No Tags: shop - commodities, the list of "add to cart" button untagged graphics

【expected outcome】

Button has a corresponding label "Add to Cart"

【solution】

For static control, the method is to add text labels to add android controls in the layout xml file: contentDescription property to ImageView example:

<ImageView

    ...

 android: contentDescription = "text label, with the words or phrases, such as login, registration, play"

 .../>

If you need to you can call View.setContentDescription ( "text label") according to user operations dynamically modify text label control to achieve.

Case 2: Focus is reset: Cart editing interface after checking the goods lost focus

[Steps to Reproduce]

Shopping Cart editing interface, check the box touch any commodity, one-finger double-click to select or deselect operation.

【expected outcome】

Check or uncheck the goods, the focus stays in the original position.

【actual results】

Focus is reset to a different location, it is not conducive to sweep browse.

【solution】

渲染玩勾选样式后调用View.requestFocus()重新请求焦点

iOS端主要的缺陷类型集中在:焦点缺失、大焦点覆盖以及焦点过细等问题上,其中:

情况一: 大焦点覆盖:首页界面我的频道栏所有频道入口都被一个大焦点覆盖

【预期结果】

我的频道”栏下的频道入口均存在独立焦点,朗读其功能名称,双击可响应其按钮的点击事件。

【解决方案】

// elements 为容器中应被访问的元素

cell.accessibilityElements = @[...elements];

情况二: 焦点过细:充值界面充值金额选项焦点过细且无选中状态提示

【预期结果】

将充值金额与售价金额合并为一个焦点,朗读:充值XXX元,售价XX.XX元,已选中状态需朗读已选中状态,如已选中的“100元”,朗读:“已选中,充值100元,售价99.80元”。

【解决方案】

// 如果是UIButton或UIControl的子类可以设置

[button setSelected:YES];

[button setSelected:NO];

// 对于其它情况,亦可通过设置

button.accessibilityTraits |= UIAccessibilityTraitSelected;

button.accessibilityTraits &= ~UIAccessibilityTraitSelected;

情况三: 底层焦点:分类浮窗展开后能够聚焦到底层元素焦点

【预期结果】

屏蔽底层元素焦点,非浮窗区域设置为一个大焦点,触摸后朗读:“关闭,按钮”,双击可关闭浮窗。

【解决方案】

newView.accessibilityViewIsModal = YES;

UIAccessibilityPostNotification(UIAccessibilityScreenChangeNotification, newView.firstElemnt);

结果总结

主要的缺陷类型集中在:

1)无标签:25%;

2)焦点缺失:10%;

3)控件状态缺失:10%;

4)大焦点覆盖:9%;

5)焦点过细:9%;

6)焦点冗余:6%;(一个元素可以被聚焦多次)

7)朗读缺失:6%;(聚焦到一个按钮上,什么都不读)

其他问题说明

预设的预期结果不恰当

1. 收银台双端-其他付款方式,读为双击选择其他付款方式。

在读屏开启的状态下,点击的操作统一都变更为双击,因此这里无须提示交互方式,只需读出按钮的名称即可,即朗读“其他付款方式”即可。

2、我的京东退换/售后,应该读为“退换或售后”,而不是退换全角斜线售后

这里没有必要刻意进行修正,之所以会读为“退换全角斜线售后”是读屏所调用的TTS(text to speach,又称文本转语音技术,或语音库)决定的,不同语音库对符号的朗读会略有差异,无须特意进行适配。同理,登录/注册的逻辑也是一样的。

3、我的京东未登录时,点击弹出登录弹窗,直接朗读“关闭按钮”,体验不佳,应该先读:请输入密码一栏

之所以进入界面后就朗读关闭按钮是因为焦点默认停留在了关闭按钮上,这里这个预期建议改为,进入登录/注册界面后,焦点默认停留在界面的第一个输入框。

 

 

Guess you like

Origin www.cnblogs.com/kunmomo/p/12194606.html