前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >企鹅 FM H5 无障碍优化总结

企鹅 FM H5 无障碍优化总结

原创
作者头像
kmokidd
修改于 2019-04-18 01:23:35
修改于 2019-04-18 01:23:35
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

- 2018年的文,搬运存档用 -

TL;DR

互联网产品最容易做到的无障碍优化,应该就是针对视障的了。色弱、高度近视、色盲…都算是视障人群,并不是所有视障用户都会使用 voiceover 或 talkback 之类的工具才能浏览页面。色彩对比度友好也应该成为页面要求的一部分。

对于我们耳熟能详的无障碍标签检测,在工具上,无论是 Chrome 插件(ChromeLensaXe)还是命令行工具aXe-clipa11y)都有很多可选, 甚至 Chrome 开发者工具中就有相应的面板。但最重要的是要用对标签

企鹅 FM 从今年9月发布的3.8开始就在完善无障碍优化,现在 app 内的无障碍优化得到了不少视障用户的点赞。但在分享、活动、运营等场景还有部分 app 内的通过 webview 承载的内容牵涉到了不少 H5 页面。H5 的无障碍优化自然也不能落后。

此篇文章总结了 H5 无障碍优化的一些方法和流程上的思考。

基本流程

FM 页面是一个高度组件化的页面,而且内容导向,没有特别多复杂动画承载视觉效果,按照以下步骤优化页面:

  1. 保证语义化的 html 标签
  2. 加 role、加 aria-* 辅助 voiceover 或者 talkback 朗读
  3. 通过 accessibility 测试工具
  4. 根据测试结构优化无障碍

展开说

  1. html 标签的语义化 简单地来说就是,使用的 html 标签需要表达它的实际用途,如果是按钮那就应该用 button,不要什么都用 divspan 做了。html 标签太多了,想了解更多可以访问这里
  2. 加 role 和各种 aria-* 辅助属性 这个大概是踏出无障碍优化最高的一个门槛,可能内心怀抱着“这些属性值要去哪里查?”、“什么时候用什么 role?”诸如此类的忐忑不安。只要找对了文档,这个问题也是迎刃可解。以下两个文档,一个是 W3C 的官方无障碍文档,另一个是 Chrome 检测无障碍的规则: W3C 的 role definition Google Chrome accessibility developer tools - Audits Rules
  3. 使用的工具和开发流程的结合 有不少 chrome 插件甚至 chrome 本身就带有无障碍检验的能力,开发者可以使用其中的工具,比如:
    • Chrome dev Tools 中的 Audits / Legacy Audits:

  • Chrome 插件
    1. ChromeLens ChromeLens 曾被 Google 的无障碍优化工程师推荐过,除了常规的(已经被整合到开发者工具的 Audits 面板)Run accessibility checks 外,它还提供了多种视障场景模拟:

除了场景模拟外,ChromeLens 还可以追踪键盘轨迹,例如 tab 键的移动轨迹,这对开发者检测页面元素顺序很有帮助:

  1. aXe aXe 其实是一个 node 项目,它主打的是 aXe-core 这个库和命令行工具,可以整合到开发流程中也是这类工具的优势之一。 aXe 作为浏览器插件,会检测页面的无障碍标签使用情况,比如是否使用了无效的标签,并给出对应的修改建议;还有所有工具通用的对背景色和字色对比度:
  • 命令行工具
    1. pa11y 除了 aXe 外,还有不少基于 nodejs 的命令行/可以打包到开发流程中的工具,pa11y 就是其中翘楚之一(也是 fm H5 无障碍优化的最终工具选择)。 开发者可以通过命令行工具直接得到检测结果:

有的页面没有做过无障碍优化,可能在命令行里看检查情况伤眼。那也可以通过输出本地文件的方式,得到一份报告:

也可以通过 node-modules 的方式将这一步骤整合到开发流程中,FM 项目的开发流程是基于 gulp 发布流程基于 kaka。无障碍检查放到开发流程的最后一步比较合适。 通过 npm script 在执行下面命令之后,得到检测结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm run test-a11y

除了上述常用检查无障碍标签、颜色对比度等特性外,pa11y 也提供了事件触发机制,比如点击、表单提交等,在某些场景下可以作为简单的测试框架使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pa11y({
    actions: [
        'click element #tab-1',
        'wait for element #tab-1-content to be visible',
        'set field #fullname to John Doe',
        'check field #terms-and-conditions',
        'uncheck field #subscribe-to-marketing',
        'wait for fragment to be #page-2',
        'wait for path to not be /login',
        'wait for url to be https://example.com/'
    ]
});

总结

就目前遇到的情况来看,做到:

  1. 确保 html 标签语义化和结构良好
  2. 用对了无障碍标签和属性,背景色和字色
  3. 对比度友好一些选一个上手的无障碍工具

大家都能轻松写出无障碍友好的页面。

广义上的“无障碍”其实指的不仅仅针对全盲的用户,听障、行动不便、智力障碍…等用户场景都应该包括其中。只是在互联网产品的前提下,视觉障碍用户大概是我们最容易优化到的全体。

其实大部分视觉障碍用户就在我们的身边:近视、远视群体、老人、色弱人群…笔者曾经参加过一次视障用户相关的义工活动里,发现很多视障用户不是完全看不见的,更多的是视力有严重问题,只能看到色块看不清文字内容。有一天我们变老了,也会成为这些“视障人群”,所以无障碍优化更应该从现在开始啊~

参考

  1. HTML5无障碍优化实践 -- adarzheng
  2. Accessibility Testing With pa11y
  3. Automating Your Accessibility Tests
  4. Google 工程师出品的无障碍系列,一个视频不超过10分钟,快速了解无障碍 A11ycasts with Rob Dodson

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于信息无障碍我们能做些什么
严格意义上来说,我是一名前端开发,清楚地记得我参与过的项目曾花费大量的人力和时间对网站的UI进行重新改版设计,尽可能多地吸引用户,也曾花费大量人力和时间优化网站的性能,想方设法地提高首屏加载速度,追求极致的性能体验。
ThoughtWorks
2019/10/28
9170
无障碍设计
优秀的无障碍设计,不仅能让残疾人用户正常地与产品交互;还会为普通人提供更好的使用体验。
lucifer210
2019/10/24
1.4K0
无障碍设计
Web内容的无障碍性(1):概述为什么Accessibility无障碍如此重要
信息无障碍,英文词语来自“Accessibility”,是指任何人在任何情况下都能平等地、方便地、无障碍地获取信息、利用信息(注意是任何人,无论是健全人还是残疾人,无论是年轻人还是老年人等等)。
周陆军博客
2023/05/07
9490
京喜小程序首页无障碍优化实践
本文参考 WCAG 2.1 、WAI-ARIA 和 Web 可访问性与无障碍最佳实践,在京喜小程序首页无障碍优化开发中,总结了一些“无障碍优化”在小程序端的实践,希望以此推动无障碍在小程序更多地落地。
winty
2020/09/24
1.5K0
京喜小程序首页无障碍优化实践
如何测试你做的项目的可访问性
编者按:本文作者:安佳,360 搜索事业部的前端开发工程师,W3C CSS 工作组成员。
苏南
2020/12/16
2.1K0
如何测试你做的项目的可访问性
Web内容的无障碍性(2):实现WAI-ARIA无障碍网页及注意
上篇《Web内容的无障碍性(1):概述为什么Accessibility无障碍如此重要》概述了Web无障碍设计,先来复习一下概念:
周陆军博客
2023/05/07
9760
前端无障碍开发指南
30年前,Tim Berners-Lee 在欧洲核子研究中心创建了第一个 Web 网页,宣告了万维网的诞生。自此,万维网就承载着开放平等的愿景。
ThoughtWorks
2023/05/22
1.4K0
前端无障碍开发指南
藏在微信里的温度,无障碍开发框架分享
👉 腾小云导读 现我国现有4471w视障/听障人士,60岁及以上人群达2.6亿规模。微信作为国民级应用,实现无障碍迫在眉睫。为了帮助他们更好地使用微信 App,Android微信完成了适老化及无障碍改造。本文主要介绍Android 微信开发团队根据适老化及无障碍需求,完成的一个协助业务侧进行无障碍功能开发的框架。希望能给广大开发爱好者带来帮助和启发! ---- 👉 看目录,点收藏 1 无障碍需求框架背景    1.1 无障碍需求    1.2 框架简介 2 无障碍开发基础知识    2.1 读屏软件识别
腾讯云开发者
2023/04/06
2.4K0
藏在微信里的温度,无障碍开发框架分享
关于无障碍设计的七件事
作者简介:Jesse Hausler,Salesfoce无障碍设计专家。旨在通过教育大家「通用设计」来实现为所有用户而设计。
mixlab
2019/05/05
3.3K0
关于无障碍设计的七件事
Web Accessibility基础:构建无障碍的前端应用
Web Accessibility(网络无障碍)是确保所有人都能平等访问和使用网站和应用程序的关键。这包括视觉、听觉、运动和认知能力有限的用户。以下是一些构建无障碍前端应用的基础原则和代码示例:
天涯学馆
2024/08/19
2000
增强网站无障碍功能的十条准则
我们列出了十条关于网站无障碍功能的准则,它们能保证你的网站对任何人(包括残疾人)都是可用的。
疯狂的技术宅
2019/03/27
1K0
增强网站无障碍功能的十条准则
山川湖海 - Android无障碍功能优化实践
本文主要分享Android无障碍功能的一些优化经验,希望看完本篇,可以帮助到你,以及哪些特殊的用户。
Petterp
2022/01/24
8790
山川湖海 - Android无障碍功能优化实践
山川湖海 - Android无障碍功能优化实践
本文主要分享Android无障碍功能的一些优化经验,希望看完本篇,可以帮助到你,以及哪些特殊的用户。
Petterp
2022/02/09
9901
山川湖海 - Android无障碍功能优化实践
简单了解下无障碍设计模式
一款设计良好的产品可供所有能力的用户使用,包括视力低下、失明、听力障碍、认知障碍或运动障碍的用户。改进产品的无障碍功能可以增强所有用户的可用性,这是非常值得做的事情。
Jean
2018/10/31
5.3K0
W3C无障碍组件创作实践中文版发布
以下文章来源于腾讯CDC体验设计 ,作者腾讯CDC-emma 导语: 本文主要介绍腾讯适老化&无障碍 Oteam (Oteam 是腾讯内部一个公司级跨团队的开源协同小组)主持 **W3C ** 技术文档翻译工作的成果,涉及 29 个常用组件的无障碍实践指引,包括详细的代码示例、键盘操作指引、WAI-ARIA 角色、属性和状态使用规范,希望能帮助设计师、开发者更好更快实现无障碍化组件。 文章概览 本文共有 3296 字,大概需要 6 分钟阅读。 当 Web 应用开始变得越来越复杂和动态化,一系列全新的无障碍
腾讯云设计中心
2022/08/26
1.3K0
W3C无障碍组件创作实践中文版发布
前端不止:Web内容的无障碍性 | 洞见
截至 2017 年 6 月,中国网民规模达 7.51 亿,中国手机网民规模达 7.24 亿, 中国网民中农村网民占比 26.7%,规模为 2.01 亿。
ThoughtWorks
2018/07/23
1K0
前端不止:Web内容的无障碍性 | 洞见
信息无障碍,我们能为视障人士做什么?
信息无障碍,我们能为视障人士做什么? The Unbounded Information Flow:What Have We Done for the Visually Impaired? 黄希
腾讯研究院
2018/03/09
2.9K0
Web如何适配无障碍?
ARIA (Accessible Rich Internet Applications) 是一组属性,用于定义使残障人士更容易访问 Web 内容和 Web 应用程序(尤其是使用 JavaScript 开发的应用程序)的方法。
HullQin
2023/05/29
3.9K0
无障碍网页设计(A11Y):提升用户体验,践行社会责任
无障碍网页设计(A11Y)不仅是提升用户体验的关键举措,更是我们作为开发者、设计师和内容创作者,积极践行社会责任的重要体现。在这篇文章中,将探讨无障碍网页设计的核心价值,分享一些实用的设计原则与技巧,并通过代码示例来展示如何将这些理念融入到实际项目中。
Jimaks
2024/04/16
3780
[译] 安卓应用和游戏的无障碍开发介绍
虽然我们的目标是设计和开发迎合广大受众群体的应用,但我们不应该忘记,使用安卓和 Google Play 的用户中还有相当一部分是残疾人。据 世界卫生组织 估计,世界人口的 15%,大约 10 亿人,有不同程度的听力,视觉,认知以及运动功能方面的残疾。这些会影响到他们与科技之间进行互动的方式,让每个人在 Google Play 和 Android 上使用他们最喜欢的应用时感到舒适对我们来说很重要。
Android 开发者
2018/08/02
1.3K0
[译] 安卓应用和游戏的无障碍开发介绍
相关推荐
关于信息无障碍我们能做些什么
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验