Web无障碍Web无障碍(WebAccessibility,取头尾各一个字母,总共有11个字母,因此简称*a11y*)

Web无障碍(WebAccessibility,取头尾各一个字母,总共有11个字母,因此简称a11y),也叫可访问性等。是指在Web开发无障碍性意味着使尽可能多的人能够使用Web站点,包括那些有视觉、听觉、运动和认知障碍的人。Web无障碍的目的是促进公平、包容和可持续的数字社会发展,让尽可能多的人都能够充分地参与到数字经济和社交生活中。

通过实现Web无障碍,不仅可以提高网站的可用性和用户体验,也能够促进社会的包容性和公正性,让更多人都能够享受数字经济和社交生活带来的便利和快乐。无障碍的实现不只是为了服务残疾人,而是为每个人提供更好的用户体验,并促进商业和社会应用程序的包容性和可持续性。

根据世界卫生组织2022年发布的最新数据,全球不同类型残疾的人数估计如下:

另外截止到2020年,我们国家中国残疾人总人数为8592.8万人,60岁以上老年人口约为2.68亿人,占全国总人口比例为19.14%。注意这些数据估计只是近似值,可能不完全准确,可能存在一个人患有多种障碍疾病等其他情况。此外,世界不同区域在残疾统计报告的定义和方法上可能存在差异。

在实际开发中,由于不同的应用功能及使用场景等因素,我们不可能完全覆盖所有人群,尽自己最大的能力让尽可能多的人能够无障碍的使用自己的应用就好,因此在开发中,我们主要考虑以下几种残疾类型:

当然还需要考虑其它的残疾类型,根据自己的实际开发的应用程序的用途,了解哪些用户会使用到自己的应用,还要考虑用户的年龄、文化差异或意识形态差异而遇到困难等因素来创建更加包容的设计。

WCAG(Web内容无障碍性指南)2.0和2.1是由万维网联盟(W3C)发布的一系列规范,旨在确保Web内容对所有人都可访问,包括残疾人。能帮助Web开发者创建尽可能无障碍的内容,从而使得更多的人能够方便地使用Web。

WCAG2.0于2008年发布,共有12个准则,每个准则都有一些成功标准,以帮助开发者创建无障碍的Web内容。其中每个成功标准都有三个级别:A、AA和AAA,级别A为最基本的要求,级别AAA为最高的要求。建议网站和应用程序至少达到AA级别的无障碍要求。因为AA级别的要求已经包括了许多基本的无障碍功能,可以满足大多数用户的需求。但是,如果网站或应用程序的用户群体中有许多有特殊需求的人,例如视觉障碍者或听力障碍者,那么建议尽可能达到AAA级别的无障碍要求,以确保他们能够完全访问网站的内容。

WCAG2.1是WCAG2.0的扩展版本,于2018年发布。它新增了13个成功标准,其中包括一些针对移动设备、低视力用户和认知障碍用户的要求。这些新的成功标准可以帮助开发者进一步提高Web内容的无障碍性。

HTML5引入了对WAI-ARIA的官方支持,并提供了新的语义元素和属性来支持无障碍访问。WAI-ARIA(WebAccessibilityInitiative–AccessibleRichInternetApplications)是一项由国际标准化组织(ISO)和W3C共同制定的技术规范,旨在提高Web应用程序的无障碍访问能力。它定义了一组属性和角色,这些属性和角色可以在HTML、SVG和其他Web技术中使用,以帮助屏幕阅读器和其他辅助技术理解Web内容的结构、功能和交互。对于通过动态内容或用户界面控件改变而不是在页面加载时进行完全渲染的应用程序尤其有用。

其中,WAI-ARIA的核心之一是ARIA(AccessibleRichInternetApplications)。它是一种Web技术,允许Web开发人员向HTML元素添加额外的语义信息,以便于使残障用户能够更好地使用Web应用程序。还为Web开发人员提供了一种简单的方式来改善Web应用程序的可访问性。

注意:

WAI-ARIA规范的主要内容有:

注意:使用role属性并不意味着我们可以忽略HTML的基本结构和语义。仅应该在需要进行语义增强的情况下使用,而不是将其作为一种浏览器样式的替代方法。

不同的角色之间,可能会存在超类或子类的关系,如果你熟悉JavaScript的类就很好理解了。WAI-ARIA规范中定义了近100个不同的角色,这些角色可以被分为以下几种类别(角色具有的必需、支持、继承和禁止的状态/属性请看后文状态与属性部分)。

抽象角色表示为网页语义而设计的一组无形的角色,描述了用户界面中的结构和行为。

注意:抽象角色只是用来构建具体角色的概念模型,它们缺乏明确的语义含义,可能会导致混淆和错误的解释,因此不能被直接用于描述Web内容。

部件角色代表用户界面中的交互性控件或部件。例如,按钮、滑块、文本框、下拉菜单等。

文档结构角色是一组用于描述网页结构,通常不是交互式的。

标志性角色用作导航地标的页面区域,所有这些角色都继承自landmark基类型

实时区域角色描述如何将Web应用程序中动态变化的内容与屏幕阅读器进行交互,使得这些内容能够被盲人和视力受限用户等人士正确地感知。

窗口角色角色充当浏览器或应用程序中的窗口。

WAI-ARIA提供了一组辅助功能状态/属性,用于支持各种操作系统平台上的平台辅助功能API。属性是控件或组件的持久化特征或配置选项。通常在创建控件或组件时设置,并且在其整个生命周期内保持不变,对应于控件或组件的默认状态;状态是指控件或组件当前所处的状态。两者都提供了关于对象的特定信息,并且都构成了角色性质定义的一部分。在HTML中两者均以aria-开头,作为HTML的全局属性使用。

注意:状态/属性也存在继承。

属性和状态的值均可以是以下几种类型:

注意:这些是状态/属性的通用类型,但不定义特定的表示。

在WAI-ARIA1.2规范中,状态/属性有40多个,分为下文6类。

注意:规范中有一类Drag-and-DropAttributes,但是在WAI-ARIA1.1规范中该类的两个状态/属性就已经被弃用了,因此本文不过多赘述。

有些状态/属性会出现在多个分类的情况,在本文中重复的状态/属性将提出放在一个表格中,如果分类A中的全部状态/属性也都属于其他分类,则会在分类A中说明。

另外各分类名称的缩写是我定义的,方便在重复的状态/属性表中查阅(有水文的成分)。

可翻译状态/属性在页面本地化时应该进行翻译。

WAI-ARIA1.2规范:

重复状态/属性:

有些状态/属性适用于所有宿主语言元素,而不管是否应用了角色。除非另有禁止,否则所有角色和所有基本标记元素都支持以下全局状态/属性。如果角色禁止使用任何全局状态或属性,那么这些状态或属性将在定义角色的部分中包含的特征表中被列为禁止的。

包含GUI系统或富internet应用程序中常见用户界面元素的特定属性,用于支持WidgetRoles。

包含特定于富Internet应用程序中实时区域的属性。这些属性可以应用于任何元素。这些属性的目的是指示内容更改可能会在没有元素具有焦点的情况下发生,并为辅助技术提供有关如何处理这些内容更新的信息。

注意:这部分状态/属性也均属于GSAP。适用于所有角色,并且没有继承到其他角色当中。

包含指示元素之间的关系或关联的属性,这些关系或关联无法从文档结构中轻松确定。

当在具有DOM焦点的元素上设置aria-activedescendant的值时,作者必须确保满足以下两组条件之一:

对于aria-colindex:作者必须将aria-colindex的值设置为大于或等于1、大于同一行中任何先前元素的aria-colindex值以及小于或等于整个表中的列数的整数。对于跨多个列的单元格或网格单元格,作者必须将aria-colindex的值设置为跨度的开头。

一个角色可以有多个状态/属性提供特定信息,一个状态/属性也可以适用于多个角色。以角色为主,与状态/属性会有以下几种关系:

注意:不是所有角色都会与状态/属性存在这四种关系,有些角色可能没有必需状态/属性。

WCAG和WAI-ARIA都是为改善Web内容的无障碍性而设立的标准和规范。但它们有几点不同:

另外WAI-ARIA补充了WCAG的内容,它们可以一起使用来实现更好的无障碍性。可以在元素上使用WAI-ARIA来增加交互式组件的无障碍性,并遵循WCAG的标准来确保页面的整体可访问性。

目前在一些设计社区中有很多大佬写了各种设计指南,对各种细节,包括字体样式、行高、滚动条、颜色对比度等等很多方面都有详细的建议和说明,大家也看得不少了,我就不过多赘述了。可以参考:

。。。

虽然这些指南不是标准规范,但是也能很大程度地提高Web应用的无障碍访问和应用美感。要注意,这些指南适用于各种Web应用,不只是CSS方面,只是对于我们前端开发人员来说,最主要直接方便能对这些指南细节进行设置和调整的莫过于CSS了。

另外,还可以利用Javascript内置的API来实现各种无障碍功能,这点下文有说明。除此之外,还有其他JavaScript无障碍问题,比如尽可能让所有交互元素都可以用键盘进行访问以执行某些复杂的功能,而不仅限于鼠标等等。

以在安卓和Windows环境下使用屏幕阅读器为例,先看一个简单的:

再来看一个复杂点的:

虽然在上面的中屏幕阅读器读出了我们想要的内容,但是不代表着这样就成功了,比如在上面的第一个,用Lighthouse测试时,无障碍部分只有96分,扣的4分在于ARIAprogressbarelementsdonothaveaccessiblenames,表示元素没有可访问名称。需要使用aria-label/aria-labelledby属性提供可访问名称。没有设置aria-label/aria-labelledby属性,可能会导致使用屏幕阅读器等辅助技术的用户无法理解它的用途。

另外Lighthouse也有浏览器插件版和工具包版。

Axe-core是网站和其他基于HTML的用户界面的无障碍测试引擎。支持多种平台和环境并且可以与测试框架结合使用。

使用方式(以上面第一个为例):

所以在测试的时候要考虑全面,设身处地将自己带入到各种人群中,思考他们会怎么使用你写的应用程序。

无障碍功能树(AccessibilityTree)是一个虚拟的树形结构,是一种将Web内容和应用程序中的无障碍功能组织和描述的方法。反映了Web页面中的无障碍信息,并且可以被辅助技术使用。无障碍功能树通常由浏览器自动生成,与DOM树类似,但DOM树只反映了文档的结构和内容;而无障碍功能树还包含许多其他属性,例如元素的角色、状态、名称和值等。

这部分主要介绍两个与屏幕阅读器有点类似的API。但要强调一下与我们平时的方式方法没什么不同,我们可以使用常见的方式方法结合WCAG和WAI-ARIA规范实现无障碍访问,比如一样可以用setAttribute()方法设置role和aria-*属性。只不过学习了Web无障碍了之后,要考虑的东西可能会变得比平时更多。

注意:在使用这些API时要考虑兼容性!

WebSpeechAPI能够将语音数据合并到Web应用程序中。包含两个组件:SpeechRecognition(语音识别,即语音→文本)和SpeechSynthesis(语音合成,即文本→语音)。

AudioAPI(音频API)各位读者应该很熟了,它是一组用于处理音频的JavaScript接口。允许开发人员创建和控制音频流,包括音频的生成、处理和播放。

AudioAPI也能做到类似屏幕阅读器的功能,比如在用户鼠标悬停、键盘聚焦、移动端触摸等等时机创建一个Audio实例,并将准备好的音频赋值给实例的src属性,接着播放即可。这种也是某个政府网站的屏幕朗读的实现方式的一部分,不过我忘记是哪个网站了。

作为一名程序员,Web无障碍是一个非常重要的话题,学习Web无障碍也是一个非常有意义的过程。它可以帮助我们建立一个更加包容和平等的互联网。通过实现Web无障碍,我们可以让更多的人都能够享受到互联网带来的便利和乐趣,无论他们是否有不同的障碍。同时,这也是一个让我们更好地理解和尊重不同人群需求的机会。

THE END
1.尊宪崇法九张图带你了解宪法工作动态尊宪崇法 |九张图带你了解宪法发布时间:2024-12-09 09:21 来源:“广西普法”微信公众号 字体+ | 字体- 分享: 【打印本页】【关闭窗口】 广西南宁市江南区人民政府主办 桂ICP备08100443号 网站标识码:4501050001 桂公网安备 45010502000199号 关于我们 网站地图 http://www.nnjn.gov.cn/zl/nnsjnqsfj/gzdt_35834/t6219093.html
2.2中国法律体系类别分级示意图.pptx2-中国法律体系类别分级示意图.pptx,;宪法>法律>行政法规>地方性法规≥部门规章≌地方政府规章;行政法规一般以“条例”、“办法”、“实施细则”、“规定”等形式作成。它的效力 次于宪法和法律、高于地方法规和行政规章(包括部门规章和地方政府规章)。 《中华人民共和https://m.book118.com/html/2021/0315/6025201221003120.shtm
3.我国法律分类这是一篇关于我国法律分类的思维导图,包含宪法、刑法、民法、社会法、经济法、诉讼法、行政法等。 亿图脑图MindMaster原创思维导图社区提供海量优质的思维导图模板资源,一个各类脑图创意思维绘制,整理知识学习与交流的平台 - 用思维导图来表述我国法律分类https://mm.edrawsoft.cn/template/1474278
4.一图读懂《中华人民共和国宪法》一图读懂《中华人民共和国宪法》,中华人民共和国宪法https://www.163.com/dy/article/JENJTSJK0514JA5T.html
5.九张图带你了解宪法九张图带你了解宪法 2024-12-04 15:30·广西普法 来源:自治区司法厅依法与普法治理处 审核:陆建武 黄晁 张艳莹 校对:钟微 编辑:桂法瑄 举报 评论0 请先 登录 后发表评论~ 评论广西普法 广西壮族自治区司法厅官方账号关注 头条热榜换一换 扫码下载今日头条APP 看最新、最热资讯内容 点击https://www.toutiao.com/article/7444454697651503655/
6.普法宣传一图读懂《中华人民共和国宪法》来源丨人民网…https://www.sohu.com/a/835444417_121106854
7.对称现象教案及反思(精选9篇)因律师-当事人间的口语语篇中只涉及律师和当事人两人,据此,可把律师-当事人间口语语篇中的信息做如下分类: A信息:A知,B不知 B信息:B知,A不知 C信息:AB共知 1.2法律语篇树状信息结构模式 法律语篇树状信息结构模式用15个疑问词标明语篇的主要信息点,全部信息点构成一个层级系统,具有明显的树状结构。“该模式https://www.360wenmi.com/f/file9z4b8c3p.html
8.汉语写作与百科知识法律 环境 科学技术 美国历史 全球化 地理 经济 金融 西方历史 西方哲学 西方文学 西方艺术 英国历史 语言 中国经济 中国历史 中国哲学 中国文化杂项 文化学 中国文学 中国艺术 宗教 未分类 5其他出版物 书籍信息 目录 6词条图册 1汉语写作与百科知识考试编辑 考试用书 全国MTI翻译硕士专业“汉语写作与百科知识”科https://baike.sogou.com/v69831530.htm
9.国土资源局地籍管理信息系统及数据库建设招标公告由于土地管理工作的法律、法规和政策随着经济社会发展会相应地进行调整,因此要求系统具有良好的动态性和可扩展性,能够依据实际工作做一定程度地动态修改、扩充和调整,并保证调整前后应用过渡的平稳性,能以零编码扩展实现相关表单、报表等的变化。 (3)兼容性https://www.bidcenter.com.cn/newscontent-5788559-1.html
10.环境影响评价《环境影响评价》ppt课件ppt大学课件预览1、具有法律强制性 2、纳入基本建设程序 3、评价对象偏重于基本建设项目 4、分类管理 5、评价资格实行审核认定制 第五节 环境影响评价的 标准体系 一、环境标准的概念和作用 二、环境标准体系 三、环境质量标准的制定和实施 第六节 环境影响评价在中国 http://read.cucdc.com/cw/63025/145516.html
11.黄宇骁:行政法学总论阿基米德支点的选择当然,不同学者对裁判和实定法的归纳与理解是不同的,因而对新行政法律关系的分类有些许区别。由于新行政法律关系被作为行政法学总论阿基米德支点是新近发展的学术观点,因此,本文在此仅选取一种相对较为成熟的代表性编排方式供参考(参见图5)。 图5 新行政法律关系方案的总论编排示例http://fzzfyjy.cupl.edu.cn/info/1035/11529.htm
12.软考软件设计师软件设计师考试知识点4.1.4 发展与分类 二、进程管理 4.2.1 状态转换图 (1)进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB。 (2)当进程创建完成后,便进入“就绪态”处于就绪态的进程己经具备运行条件,但由于没有空闲CPU,就暂时不能运行。 https://blog.csdn.net/m0_74181321/article/details/140852675
13.军事理论建议复习题(完善版)2015(1)B.国防法律 C.国防法规 D.国防法规体系 54、下列不属于《中华人民共和国国防法》规定的中华人民共和国武装力量的是( D ) A.中国人民解放军现役部队 B10.机械化战争的作战指挥控制是纵向连接的树状结构。 (× ) 11.信息化战争战场空间广阔的特征表现在陆地、海洋、空中的三维空间。 ( × ) 12.1998年5月https://m.360docs.net/doc/6c3930390.html
14.英语长句翻译方法12篇(全文)【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2015)08-0105-02 一、英语语言的主要特点 1.树状分布特点 在英语的具体学习中,句子分为主谓结构,相当于树的根源,也就是一个句子的主体结构。从这个根源出发,又相继产生了许多不同的句型句式,主要有S+Vi句型,S+LinkV+P句型,S+Vt+P句型及S+Vthttps://www.99xueshu.com/w/ikeyqgq0xxvk.html
15.法律论文:法律文本中条件句的分类特点与翻译1.1、 法律文本中条件句的分类 法律文本中的条件句同样遵循英语注重句子结构的规律,是在主语加谓语这一基本英语句式的基础上加上修饰、补充、说明成分或一些从句延伸而来的。相应的,我们可以将法律文本中的条件句分为简单条件句和复杂条件句两类。 从英语句子中的动词性质看,其基本句型结构主要包括以下五类,即主谓句https://www.tingclass.net/show-7844-511662-1.html