整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

React笔记-高级指引:1.Accessibility:无障碍

.为什么使用无障碍辅助功能?

无障碍辅助功能是使得辅助技术正确解读网页的必要条件。

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 节点。

  • 焦点管理示例插件:react-aria-modal
  • 5.鼠标和指针事件

    确保任何可以使用鼠标和指针完成的功能也可以只通过键盘完成。

    • 示例1:click事件

  • 示例2:onBlur、onFocus

  • 6.更复杂的部件

    7.其他考虑因素

    • 设置语言
    • 设置文档标题
      • 可以使用 React 文档标题组件(React Document Title Component)来设置标题
    • 色彩对比度

    8.开发及测试

    • 键盘
      • 断开鼠标
      • 使用 Tab 和 Shift+Tab 来浏览。
      • 使用 Enter 来激活元素。
      • 当需要时,使用键盘上的方向键来和某些元素互动,比如菜单和下拉选项。
    • 开发辅助
      • eslint-plugin-jsx-a11y插件
      • 启用更多的无障碍规则,可以在项目的根目录中创建一个有如下内容的 .eslintrc 文件:

    • 在浏览器中测试无障碍辅助功能
      • aXeaXe-corereact-axe
      • WebAIM WAVE
      • 无障碍辅助功能检测器和无障碍辅助功能树
    • 屏幕朗读器
    • 常用屏幕朗读器
      • 火狐中的 NVDA
      • Safari 中的 VoiceOver
      • Internet Explorer 中的 JAWS
      • Google Chrome 中的 ChromeVox

    天章鱼猫给大家带来的开源项目啊,安卓同学估计都会非常的喜欢。因为这是一个支持无障碍服务的 Android 平台上的 JavaScript IDE,其发展目标是 JsBox 和 Workflow。

    而且同时有 VS Code 插件可提供基础的在桌面开发的功能。

    这个开源项目就是:Auto.js,安卓平台上的 JavaScript 自动化工具。

    它的特性如下:

    1. 由无障碍服务实现的简单易用的自动操作函数
    2. 悬浮窗录制和运行
    3. 更专业 & 强大的选择器 API,提供对屏幕上的控件的寻找、遍历、获取信息、操作等。类似于 Google 的 UI 测试框架 UiAutomator,您也可以把他当做移动版 UI 测试框架使用
    4. 采用 JavaScript 为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,可以作为一个 JavaScript IDE 使用
    5. 支持使用 e4x 编写界面,并可以将 JavaScript 打包为 apk 文件,您可以用它来开发小工具应用
    6. 支持使用 Root 权限以提供更强大的屏幕点击、滑动、录制功能和运行 shell 命令。录制录制可产生 js 文件或二进制文件,录制动作的回放比较流畅
    7. 提供截取屏幕、保存截图、图片找色、找图等函数
    8. 可作为 Tasker 插件使用,结合 Tasker 可胜任日常工作流
    9. 带有界面分析工具,类似 Android Studio 的 LayoutInspector,可以分析界面层次和范围、获取界面上的控件信息

    这个软件与按键精灵等软件不同,主要区别是:

    1. Auto.js 主要以自动化、工作流为目标,更多地是方便日常生活工作,例如启动游戏时自动屏蔽通知、一键与特定联系人微信视频(知乎上出现过该问题,老人难以进行复杂的操作和子女进行微信视频)等
    2. Auto.js 兼容性更好。以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的 Auto.js 则没有这个问题
    3. Auto.js 执行大部分任务不需要 root 权限。只有需要精确坐标点击、滑动的相关函数才需要 root 权限
    4. Auto.js 可以提供界面编写等功能,不仅仅是作为一个脚本软件而存在。

    而且这个开源项目,还有自己的官网文档,截图如下:

    介绍啊,内容都非常的全面而且细致。

    主要功能有:

    真的非常好,有兴趣的同学赶紧去 star ,支持一波吧!

    开源项目地址:https://github.com/hyb1996/Auto.js

    开源项目作者:Stardust

    今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言、点赞和转发关注是我持续更新的动力哦!

    障碍台阶在实际的项目中很常见

    就像这样


    这些造型不仅美观

    还很实用

    那小吧也来装X挑战一下吧




    好了,下面请看我的表演



    视频教程

    <script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

    视频录制——SketchUp吧弹指神通

    视频同款模型领取地址:subar.me/thread-382777-1-1.html


    图文教程

    *教程中所使用的插件都来自SUAPP中文插件库!

    首先我们看到的是平面图。


    先来把相邻的两块梯步分别进行【生成楼梯】(SUAPP编号409)快速搞定!


    进入其中一个梯步群组,将斜坡位子补充好。


    另一边也是一样,注意两边斜坡的位置要持平。


    再手动将斜坡补充好,这一部分的梯步就做好了。


    同样的方式再把另外的部分完成。


    完成的样子。


    没错就是这么简单,其实我还有更简单的方法!一个插件【对象切割】(SUAPP编号298)搞定!


    好了,装X结束,你学会了吗

    任何人没学会我都会伤心的