网站首页 > 基础教程 正文
1.为什么使用无障碍辅助功能?
无障碍辅助功能是使得辅助技术正确解读网页的必要条件。
2.标准和指南
- WCAG网络内容无障碍指南(Web Content Accessibility Guidelines,WCAG) 为开发无障碍网站提供了指南。
- WAI-ARIA网络无障碍倡议 – 无障碍互联网应用(Web Accessibility Initiative – Accessible Rich Internet Applications) 文件包含了创建完全无障碍 JavaScript 部件所需要的技术。
注意: JSX 支持所有 aria-* HTML 属性
<input
type="text"
aria-label={labelText}
aria-required="true"
onChange={onchangeHandler}
value={inputValue}
name="name"
/>
3.语义化的HTML
语义化的 HTML 是无障碍辅助功能网络应用的基础。
利用多种 HTML 元素来强化您网站中的信息通常可以使您直接获得无障碍辅助功能。
3.1:使用 React Fragments 来组合各个组件
3.2:可以把一系列的对象映射到一个 fragment 的数组中
3.2:当不需要在 fragment 标签中添加任何 prop 且你的工具支持的时候,可以使用 短语法:
4.无障碍表单
- 标记
- 所有的 HTML 表单控制,例如 <input> 和 <textarea> ,都需要被标注来实现无障碍辅助功能。
- for在JSX中被写作htmlFor
- 在出错时提醒用户
- 控制焦点
- 键盘焦点及焦点轮廓
- 跳过内容机制
- 使用程序管理焦点
- 用 DOM 元素的 Refs 在 React 中设置焦点
- 有时,父组件需要把焦点设置在其子组件的一个元素上。我们可以通过在子组件上设置一个特殊的 prop 来对父组件暴露 DOM refs 从而把父组件的 ref 传向子节点的 DOM 节点。
5.鼠标和指针事件
确保任何可以使用鼠标和指针完成的功能也可以只通过键盘完成。
- 示例1:click事件
6.更复杂的部件
7.其他考虑因素
- 设置语言
- 设置文档标题
- 可以使用 React 文档标题组件(React Document Title Component)来设置标题
- 色彩对比度
8.开发及测试
- 键盘
- 断开鼠标
- 使用 Tab 和 Shift+Tab 来浏览。
- 使用 Enter 来激活元素。
- 当需要时,使用键盘上的方向键来和某些元素互动,比如菜单和下拉选项。
- 开发辅助
- eslint-plugin-jsx-a11y插件
- 启用更多的无障碍规则,可以在项目的根目录中创建一个有如下内容的 .eslintrc 文件:
- 在浏览器中测试无障碍辅助功能
- aXe、aXe-core、react-axe
- WebAIM WAVE
- 无障碍辅助功能检测器和无障碍辅助功能树
- 屏幕朗读器
- 常用屏幕朗读器
- 火狐中的 NVDA
- Safari 中的 VoiceOver
- Internet Explorer 中的 JAWS
- Google Chrome 中的 ChromeVox
- 上一篇: React 最常用的函数(备忘查询)
- 下一篇: 「前端进阶」React系列九 - 受控非受控组件
猜你喜欢
- 2024-11-24 React源码分析与实现(一):组件的初始化与渲染「实践篇」
- 2024-11-24 React 最简单的入门应用项目
- 2024-11-24 「干货」深入浅出React组件逻辑复用的那些事儿
- 2024-11-24 「干货满满」React Hooks 最佳实践
- 2024-11-24 React开发必须知道的34个技巧
- 2024-11-24 React组件应该如何封装?
- 2024-11-24 React.js前端框架初学技术总结
- 2024-11-24 前端架构师成长之路:5 分分钟搞懂面试官必问 React 题
- 2024-11-24 只会Vue的我,用两天学会了react,这个方法您也可以
- 2024-11-24 react高质量笔记_9(Diffing算法)
- 06-09Socioeconomic growth goals high on meetings' agenda
- 06-09Cities Along Middle Reaches of Yangtze River Agree on 63 Cooperation Items
- 06-09Scientists to make flag flutter on moon
- 06-09CBN丨Foreign-funded institutions bullish on Chinese assets
- 06-09Full Text: Joint Statement between the People's Republic of China and the French Republic on Climate Change on the occasion of the Tenth Anniversary of the Paris Agreement
- 06-092022年底总结,温暖和激励自己的文案
- 06-09百度实时推送代码解决方案(百度实时推送工具)
- 06-09PHP漏洞之跨网站请求伪造(php跨站脚本攻击)
- 最近发表
-
- Socioeconomic growth goals high on meetings' agenda
- Cities Along Middle Reaches of Yangtze River Agree on 63 Cooperation Items
- Scientists to make flag flutter on moon
- CBN丨Foreign-funded institutions bullish on Chinese assets
- Full Text: Joint Statement between the People's Republic of China and the French Republic on Climate Change on the occasion of the Tenth Anniversary of the Paris Agreement
- 2022年底总结,温暖和激励自己的文案
- 百度实时推送代码解决方案(百度实时推送工具)
- PHP漏洞之跨网站请求伪造(php跨站脚本攻击)
- ThinkPHP后台入口地址查找(thinkphp build.php)
- PHP新手如何提高代码质量(php新手如何提高代码质量的方法)
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)