101-advanced-React易用性,概述

  React完全支持构建可访问的网站,通常使用标准的HTML技术。

1、可访问小部件

  ARIA文档包含用于构建完全可访问的JavaScript小部件的技术。

  JSX完全支持所有aria- * HTML属性。尽管React中的大多数DOM属性和属性都是camelCased的,但这些属性应该是小写的:

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

2、html语义

  语义HTML是Web应用程序可访问性的基础。使用各种HTML元素来加强我们网站中信息的含义通常会使我们免费获得可访问性。

  有时我们在向我们的JSX添加<div>元素以使我们的React代码正常工作时,特别是在处理列表(<ol>,<ul>和<dl>)和HTML <table>时,会破坏HTML语义。在这些情况下,我们应该使用React Fragments将多个元素组合在一起。

  当使用一个key prop 时可以使用<Fragment>

import React, { Fragment } from 'react';

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // Without the `key`, React will fire a key warning
        <Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </Fragment>
      ))}
    </dl>
  );
}

  也可以在任何地方使用<></>

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

3、label for

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

 

  

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-06-17 21:43  bjlhx15  阅读(254)  评论(0编辑  收藏  举报
Copyright ©2011~2020 JD-李宏旭