画布应用中的辅助功能限制
您可以使用内置控件设计和构建可访问画布应用。 有时,应用设计组合、各种控件的使用和配置的控件属性可能导致应用的用户界面不可访问。
在本文中,您将了解画布应用中的这些辅助功能限制,以及如何改进应用界面以使其更易于访问。
对话框和覆盖
不支持在其他内容上方显示的对话框和用户界面。 这些覆盖需要焦点管理、从屏幕阅读器隐藏背景内容以及适当的控制角色。
请考虑以下事项:
选项卡式界面
选项卡式界面由选项卡列表和一个显示与选定选项卡关联的内容的面板组成。
支持选项卡式界面的唯一内置控件是**选项卡列表。 避免使用库** 创建选项卡。 应该使用箭头键导航选项卡列表。 需要适当的控制角色和状态。
请考虑以下事项:
自定义表
支持二维数据的唯一内置控件是**数据表。 避免使用库** 在行和列中显示数据。 行和列必须添加批注,以便屏幕阅读器用户可以了解其结构并导航单元格。
请考虑以下事项:
自定义组合框
可以通过组合**文本输入** 和**库** 模拟组合框。 但是,从内置控件组合的组合框不可访问。 组合框必须处理箭头键并在其组件上设置适当的角色和状态。
请考虑以下事项:
可滚动内容
如果内部没有交互控件,键盘用户无法滚动**窗体、可滚动屏幕** 和**容器**。
对于没有交互内容的**库,可以在库**本身上设置 TabIndex,以便键盘用户可以将焦点放在该库上并使用箭头键滚动它。
对于**标签,设置 TabIndex 将使其可聚焦以进行键盘滚动。 但是,它还会将它们转换为按钮。 如果标签不是按钮,请不要使标签可滚动。 确保标签足够大以适合文本。 当 AutoHeight 属性位于窗体**、可滚动屏幕或库中时,可用于自动调整控件的大小。
可展开部分
可展开部分(也称为披露)包含在用户按下按钮之前处于隐藏状态的内容。 没有对这些元素的内置支持,但有一个解决方法。
在按钮的 AccessibleLabel 中提及展开状态。 例如,“显示更多详细信息。 已折叠。”。
在展开状态更改时,更新 AccessibleLabel。 紧接在按钮之后定位展开内容,以便屏幕阅读器用户可以逻辑方式导航到它。 在展开部分时,下移浏览其他内容。
地标
可以使用**标签** 控件创建标题。 不支持导航、横幅和其他地标。 Power Apps 自动将主要地标设置到应用屏幕。
对于其他地标,使用标题作为解决方法。
自定义角色和状态
没有对自定义角色和状态的内置支持。 因此,建议不要从内置控件创建复合复选框、滑块和切换。
请考虑以下事项:
- 在 AccessibleLabel 中提及控件的角色和状态。 例如,如果使用**图标** 作为复选框,其标签可能是“启用通知。 复选框。 已选中。”。
- 创建代码组件 ,以根据需要设置 WAI-ARIA 角色和状态。
自定义键盘处理
无法响应特定按键。 例如,对于箭头键或 Esc 键,没有自定义行为。 因此,无法从内置控件创建类似于列表的控件(例如单选按钮)。 也不能创建可以使用 Esc 键关闭的覆盖。
OnSelect 支持 Enter 或空格键处理。 但是,此属性还通过其他输入方法(例如鼠标单击)触发。 无法区分事件源。
焦点管理
SetFocus 功能可用于更改焦点,但它仅在有限的场景中有效。
无法检测控件何时接收或丢失焦点。
仅对屏幕阅读器用户隐藏内容
没有等效于向已注册用户显示内容的 aria-hidden,但对屏幕阅读器用户隐藏它。 仅支持少数场景。