zoukankan      html  css  js  c++  java
  • Mac VoiceOver + react 注意事项

    苹果提供的 VoiceOver 针对不便人员或者特殊使用习惯的用户帮助很大。

    打开Mac VoiceOver 快捷键: command + F5

    为了能够支持VoiceOver, 在前段程序中一些写法需要注意。

    1. chrome 对于<a/> 能够自动 tab 上,无论是否手动添加 tabIndex。

     上面的写法,在chrome 里面能够被 screen reader 自动识别,并且能够通过 tab 进行切换

    2. Safari 对于设置了 href 的<a/> 无论如何都无法 tab 上,即使是添加了 tabIndex 和 role='button'

     

     

     上面的两种写法,在safari种都无法通过 screen reader 读取到

    3. 对于仅仅添加 onClick 事件的<a/>, 无法连贯使用键盘操作(‘enter’ 不能触发 onClick 事件)

      上面的例子,无论是在chrome,还是 safari中,‘enter’ 键都无法触发 login 事件

    4. 如果是自定义控件(由div拼出来的),那么需要手动添加 tabIndex 去让 screen reader 能够读出它来,另外,加上role='button' 能够更好的识别控件用途。

       加入tabIndex 是为了让 tab 能停留在登录“按钮”上,加入 role='button' 是为了让 screen reader 识别控件为'button', 然后输出给用户。

    为了能够兼容 chrome 和 safari 可以定义一个基础控件如下:

    点击事件后执行blur() 是为了不持续显示 link 周围的选中蓝框。这个蓝框不直接去掉是因为希望在 tab 时能看到这个蓝框。

    测试浏览器版本:

    Safari: ver 13.0.5

    Chrome: ver 80.0.3987.116

    Chrome: ver 79.0.3945.117

  • 相关阅读:
    多路RTSP流解码:最高可支持12路视频编解码
    RK3399 PRO快速开发
    人脸识别精准营销解决方案
    EC-A3399ProC 六核64位AI嵌入式主机
    Cluster Server R1集群服务器
    韦东山推出基于Firefly平台的升级版嵌入式Linux教程
    【上传图片】上传图片二三事
    【linux】阿里云防火墙相关
    【php】LAMP中开启错误提示
    【mysql】mysql优化
  • 原文地址:https://www.cnblogs.com/crdanding/p/12342589.html
Copyright © 2011-2022 走看看