侧边栏壁纸
  • 累计撰写 635 篇文章
  • 累计收到 0 条评论

Web 可访问性整理

加速器之家
2024-08-24 / 0 评论 / 3 阅读 / 正在检测是否收录...

定义

  • 可访问性 Accessibility
    为障碍用户提供同等用户体验。使障碍用户能对产品感知、理解、定位和交互,并能平等地参与贡献。
  • 可用性 Usability
    可用性和用户体验设计(User Experience Design)是为了让目标用户使用产品高效、满意地达到特定目标。
  • 包容性 Inclusion
    包容性设计(Inclusive Design)、通用设计(Universal Design)和人性化设计(Design For All)尽可能让每个人都能容易地用上产品。包容性要解决的问题非常广,包括软、硬件的可访问性和质量、互联网连通性、计算机文化和技能、经济状况、教育、地理位置、语言、以及年龄和残障。

体验屏幕阅读

要解决问题首先得知道问题是怎样的,体验屏幕阅读器:

  • ChromeVox ,Chrome 扩展
  • NVDA ,开源跨平台
  • VoiceOver (MacOS)

工具

参考规范

有什么问题查规范准没错。在自行实现支持 ARIA 的元素时很有用。

其它资料

文章

视频

课程

Tab

对于纯键盘使用者来说, Tab 键承担了重要责任。

Tab 顺序

要点: Tab 顺序是按照 DOM 结构,而不是 CSSOM 结构。

所以通过 CSS 将元素提前(如 flex order)并不会影响 tab 顺序。在排版的时候需要考虑。

其它元素

Tab 默认只会识别部分元素,如果需要让其它元素也被识别,加上 tabindex="0" 属性。

不鼓励使用大于 0 的其它数字,除了会造成混乱,一些屏幕阅读器也不一定会遵循。应该用 DOM 顺序来体现 tab 顺序。

忽略 Tab

要让 tab 忽略一个元素,即直接跳过去,设置 tabindex="-1" 属性。

或者用还在草稿阶段的 inert 属性 (polyfill)。

侧导航栏问题

在一些响应式的网页,侧导航栏在宽度变小时可能会隐藏起来,这时用户如果使用 tab 跳转可能会发现焦点突然不见了,怎么按也没反应。其实是因为 tab 跳到导航栏的链接去了。

解决方式要么改变 DOM 结构,将导航栏移到最后;要么使用前面提到的 inert 属性。

将导航的每个项目绝对定位到屏幕之上,再设置 :focus 样式移下来。就可以实现用户按 tab 时一次只显示一个导航链接,用户再按回车即可跳到该位置。可以参考 Github 网页。

原生元素

尽可能使用原生支持的元素,如

2019 - 2024