• react高级指引


    react高级指引

    1 无障碍

    网络无障碍辅助功能(Accessibility,也被称为 a11y,因为以 A 开头,以 Y 结尾,中间一共 11 个字母)是一种可以帮助所有人获得服务的设计和创造。无障碍辅助功能是使得辅助技术正确解读网页的必要条件。

    React 对于创建可访问网站有着全面的支持,而这通常是通过标准 HTML 技术实现的。

    1.1 WAI-ARIA

    网络无障碍倡议 - 无障碍互联网应用(Web Accessibility Initiative - Accessible Rich Internet Applications) 文件包含了创建完全无障碍 JavaScript 部件所需要的技术。

    注意:JSX 支持所有 aria-* HTML 属性。虽然大多数 React 的 DOM 变量和属性命名都使用驼峰命名(camelCased),但 aria-* 应该像其在 HTML 中一样使用带连字符的命名法(也叫诸如 hyphen-cased,kebab-case,lisp-case)。

    <input
      type="text"
      aria-label={labelText}
      aria-required="true"
      onChange={onchangeHandler}
      value={inputValue}
      name="name"
    />
    

    1.2 语义化的 HTML

    语义化的 HTML 是无障碍辅助功能网络应用的基础。 利用多种 HTML 元素来强化您网站中的信息通常可以使您直接获得无障碍辅助功能。

    MDN 的 HTML 元素参照(MDN HTML elements reference)
    有时,语义化的 HTML 会被破坏。比如当在 JSX 中使用 div 元素来实现 React 代码功能的时候,又或是在使用列表(ol, ul 和 dl)和 HTML table 时。 在这种情况下,我们应该使用 React Fragments 来组合各个组件。

    import React, { Fragment } from 'react';
    
    function ListItem({ item }) {
      return (
        <Fragment>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </Fragment>
      );
    }
    
    function Glossary(props) {
      return (
        <dl>
          {props.items.map(item => (
            <ListItem item={item} key={item.id} />
          ))}
        </dl>
      );
    }
    

    当你不需要在 fragment 标签中添加任何 prop 且你的工具支持的时候,你可以使用 短语法:

    function ListItem({ item }) {
      return (
        <>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </>
      );
    }
    

    1.3 无障碍表单

    1.3.1 标记

    所有的 HTML 表单控制,例如 input 和 textarea ,都需要被标注来实现无障碍辅助功能。我们需要提供屏幕朗读器以解释性标注。

    以下资源向我们展示了如何写标注:

    尽管这些标准 HTML 实践可以被直接用在 React 中,请注意 for 在 JSX 中应该被写作 htmlFor:

    <label htmlFor="namedInput">Name:</label>
    <input id="namedInput" type="text" name="name"/>
    

    1.3.2 在出错时提醒用户

    当出现错误时,所有用户都应该知情。下面的链接告诉我们如何给屏幕朗读器设置错误信息:

    1.4 控制焦点

    确保你的网络应用在即使只拥有键盘的环境下正常运作。

    1.4.1 键盘焦点及焦点轮廓

    键盘焦点的定义是:在 DOM 中,当前被选中来接受键盘信息的元素。我们可以在各处看到键盘焦点,它会被焦点轮廓包围,像下面的这个图像一样。

    alt 属性文本

    请不要使用 CSS 移除这个轮廓,比如设置 outline: 0,除非你将使用其他的方法实现焦点轮廓。

    1.4.2 跳过内容机制

    为了帮助和提速键盘导航,我们提供了一种机制,可以帮助用户跳过一些导航段落。

    跳转链接(Skiplinks),或者说跳转导航链接(Skip Navigation Links)是一种隐藏的导航链接,它只会在使用键盘导航时可见。使用网页内部锚点和一些式样可以很容易地实现它:

    另外,使用地标元素和角色,比如

  • 相关阅读:
    docker学习笔记(2)——docker常用命令
    docker学习笔记(1)——ubuntu16.04安装docker(含如何彻底卸载docker,docker拉取镜像失败解决)
    近期计划随笔
    程序员的自我修养:链接、装载与库(一本书,估计没时间看。。。哭。。。)
    str.format 学习
    pyqt5 线程 (QThread)启动、挂起、恢复、终止问题见解
    pyqt5 在非主线程(QThread线程)中实现弹窗QMessageBox
    807 · 回文数 II
    1334 · 旋转数组
    297 · 寻找最大值
  • 原文地址:https://www.cnblogs.com/lzq035/p/14119969.html
Copyright © 2020-2023  润新知