重学前端 43 # HTML的可访问性ARIA

简介: 重学前端 43 # HTML的可访问性ARIA

一、介绍


ARIA 全称为 Accessible Rich Internet Applications,它表现为一组属性,是用于可访问性的一份标准。



二、综述


2.1、添加role属性

ARIA 给 HTML 元素添加的一个核心属性就是 role

<span role="checkbox" aria-checked="false" tabindex="0" aria-labelledby="chk1-label">
</span> <label id="chk1-label">Remember my preferences</label>

上面代码给 span 添加了 checkbox 角色,表示这个 span被用于 checkbox,并且以 checkbox的交互方式来处理用户操作。



2.2、role属性的定义


role 的定义是一个树形的继承关系。

整体结构:

aHR0cHM6Ly9zdGF0aWMwMDEuZ2Vla2Jhbmcub3JnL3Jlc291cmNlL2ltYWdlL2FlLzY5L2FlY2NmNjQ4NzFiMzA5NzM1MDU0OTEyZmJiYjE4YTY5LmpwZw.jpg

其中,widget 表示一些可交互的组件,structure 表示文档中的结构,window 则代表窗体。



三、Widget 角色


这一类角色表示一个可交互的组件:

aHR0cHM6Ly9zdGF0aWMwMDEuZ2Vla2Jhbmcub3JnL3Jlc291cmNlL2ltYWdlLzEwL2RkLzEwZWE5ZWI2MmQ2MGZiNGJmYjE4YzI3ZGE1MDgzNmRkLmpwZw.jpg

按照继承关系展示列表和简要说明:

aHR0cHM6Ly9zdGF0aWMwMDEuZ2Vla2Jhbmcub3JnL3Jlc291cmNlL2ltYWdlLzAzL2YxLzAzOGUxMTUyYzliZGRjN2VkODY0ZDI3MTY5MWQxN2YxLmpwZWc.jpg

这些 widget 同时还会带来对应的 ARIA 属性,例如下面的两个


1、Checkbox 角色,会带来两个属性:


   aria-checked 表示复选框是否已经被选中;

   aria-labelledby 表示复选框对应的文字。


2、Button 角色,会带来两个属性:


   aria-pressed 按钮是否已经被按下;

   aria-expanded 按钮控制的目标是否已经被展开。


更多参考网站:https://www.w3.org/TR/wai-aria/


一些复杂的角色


1、Combobox是一个带选项的输入框,常见的搜索引擎,一般都会提供这样的输入框,当输入时,它会提供若干提示选项。


2、Grid 是一个表格,它会分成行、列,行列又有行头和列头表示行、列的意义。


3、Tablist 是一个可切换的结构,一般被称为选项卡,它包含了 tab 头和 tabpanel,在 tab 容器中,可能包含各种组件。


4、Listbox 是一个可选中的列表,它内部具有角色为 Option 的选项。


5、Menu 是指菜单,菜单中可以加入嵌套的菜单项(Menuitem 角色),除了普通菜单项,还可以有 Menuitemcheckbox 带复选框的菜单栏和 Menuitemradio 带单选框的菜单栏。


6、Radiogroup 是一组互斥的单选框的容器,它的内部可以由若干个角色为 radio 的单选框。


7、Tree 是树形控件,它的内部含有 Treeitem 树形控件项,它还有一种升级形式是 Treegrid。



四、structure 角色


这部分角色的作用类似于语义化标签,但是内容稍微有些不同。

aHR0cHM6Ly9zdGF0aWMwMDEuZ2Vla2Jhbmcub3JnL3Jlc291cmNlL2ltYWdlL2IyLzdhL2IyMWE4MmZkNjhhODg1Zjc1MTEyM2Y0OGE3ZTI2YjdhLmpwZw.jpg


五、window 角色


在网页中,有些元素表示“新窗口”,这时候,会用到 window 角色。window 系角色非常少,只有三个角色:


  • window
  • dialog
  • alertdialog







目录
相关文章
|
1天前
|
存储 移动开发 前端开发
HTML5基础题及答案——必刷前端题目(背)
- Internet是全球连接的TCP/IP协议网络,而万维网(Web)是Internet上的重要服务,基于HTTP协议展示资源。 - 用户通过浏览器输入URL访问Web页面,浏览器向服务器请求内容并显示。 - Web前端基础是HTML、CSS和JavaScript。 - HTML5是HTML的最新版本,增加了新标签、API和功能,如注释、新的列表标签、文档结构和格式标签、拖放、画布等。
|
1天前
|
JavaScript 前端开发 UED
【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
【5月更文挑战第2天】【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
|
1天前
|
存储 前端开发 JavaScript
【Web 前端】如何找到所有 HTML select 标签的选中项?
【5月更文挑战第2天】【Web 前端】如何找到所有 HTML select 标签的选中项?
|
1天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
1天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
1天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。
|
1天前
|
移动开发 前端开发 UED
【专栏:HTML与CSS前端技术趋势篇】渐进式增强与优雅降级在前端开发中的实践
【4月更文挑战第30天】前端开发中的渐进式增强和优雅降级是确保跨浏览器、跨设备良好用户体验的关键策略。渐进式增强是从基础功能开始,逐步增加高级特性,保证所有用户能访问基本内容;而优雅降级则是从完整版本出发,向下兼容,确保低版本浏览器仍能使用基本功能。实践中,遵循HTML5/CSS3规范,使用流式布局和响应式设计,检测浏览器特性,并提供备选方案,都是实现这两种策略的有效方法。选择合适策略优化网站,提升用户体验。
|
1天前
|
前端开发 开发者 UED
【专栏:HTML与CSS前端技术趋势篇】网页设计中的CSS Grid与Flexbox之争
【4月更文挑战第30天】本文对比了CSS Grid和Flexbox两种布局工具。Flexbox擅长一维布局,简单易用,适合导航栏和列表;CSS Grid则适用于二维布局,能创建复杂结构,适用于整个页面布局。两者各有优势,在响应式设计中都占有一席之地。随着Web标准发展,它们的结合使用将成为趋势,开发者需掌握两者以应对多样化需求。
|
1天前
|
前端开发 JavaScript 搜索推荐
【专栏:HTML 与 CSS 前端技术趋势篇】HTML 与 CSS 在 Web 组件化中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在Web组件化中的应用及其在前端趋势中的重要性。组件化提高了代码复用、维护性和扩展性。HTML提供组件结构,语义化标签增进可读性,支持用户交互;CSS实现样式封装、布局控制和主题定制。案例展示了导航栏、卡片和模态框组件的创建。响应式设计、动态样式、CSS预处理器和Web组件标准等趋势影响HTML/CSS在组件化中的应用。面对兼容性、代码复杂度和性能优化挑战,需采取相应策略。未来,持续发掘HTML和CSS潜力,推动组件化开发创新,提升Web应用体验。
|
1天前
|
搜索推荐 UED 开发者
【专栏:HTML 基础篇】HTML 语义化:提升网页的可访问性
【4月更文挑战第30天】HTML语义化是构建高质量网页的关键,它通过使用有意义的标签提升网页可访问性、SEO和代码可读性。语义化标签如`&lt;header&gt;`、`&lt;nav&gt;`、`&lt;main&gt;`、`&lt;article&gt;`等有助于内容理解与团队协作。合理应用标题、列表和导航结构,同时注意避免过度使用和保持一致性。屏幕阅读器、键盘导航和辅助技术的兼容性是语义化对可访问性的重要影响。通过掌握和应用HTML语义化,我们可以优化用户体验,为数字世界贡献力量。