본문 바로가기
React

[React 스터디] 2 : 접근성

by 바나냥 2020. 8. 21.

접근성이란?

사용자가 신체적 불편함이나 장애 여부와 상관없이 웹에 접근할  있도록 고려하는 것으로 img태그에 대한 대체 텍스트, 건너뛰기 링크, 레이블 제공 등으로 접근성을 높일  있다.

 

 

시맨틱 HTML

class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />
        </tr>
      </table>
    );
  }
}

class Columns extends React.Component {
  render() {
    return (
      <div>
        <td>Hello</td>
        <td>World</td>
      </div>
    );
  }
}

 

 

<Table />의 출력 결과는 다음과 같습니다.

 

<table>
  <tr>
    <div>
      <td>Hello</td>
      <td>World</td>
    </div>
  </tr>
</table>

 

 

렌더링 된 HTML이 유효하려면 <Columns />가 여러 <td> 엘리먼트만 반환해야 합니다. <Columns /> render() 안에 부모 div로 자식들을 감싼다면 렌더링 된 HTML은 유효하지 않습니다. Fragments는 이 문제를 해결해줍니다.

 

class Columns extends React.Component {
  render() {
    return (
      <React.Fragment>
        <td>Hello</td>
        <td>World</td>
      </React.Fragment>
    );
  }
}

 

 

올바른 <Table />의 출력 결과는 아래와 같습니다.

 

<table>
  <tr>
    <td>Hello</td>
    <td>World</td>
  </tr>
</table>

 

 

배열의 각 항목을 매핑할 때에도 사용할 수 있습니다.

 

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // 항목을 매핑할 때 Fragment는 반드시 `key` 프로퍼티가 있어야 합니다.
        <Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </Fragment>
      ))}
    </dl>
  );
}

 

 

단축 문법 : 만약, Fragment 태그에 어떤 props도 필요하지 않고, 사용하고 있는 도구에서 지원한다면, 아래와 같이 짧게 줄여 쓸 수 있습니다.
<>
  <dt>{item.term}</dt>
  <dd>{item.description}</dd>
</>

 

 

포커스 컨트롤 / 마우스와 포인트 이벤트

React에서 포커스를 지정하려면, DOM 엘리먼트에 ref를 사용할 수 있습니다.

이를 사용해 JSX 컴포넌트 클래스 안에서 엘리먼트에 대한 ref를 먼저 생성합니다.

 

 

const inputRef = createRef();
const [input, setInput] = useState('');

const handleEvent = () => {
        const { value } = e.currentTarget;
        const { name: targetName } = e.target;

        setInput(value);
};
    
    
<Input
        ..
        onChange={handleEvent}
        onBlur={handleEvent}
        onFocus={handleEvent}
        ref={inputRef}
/>

 

 

 

https://www.w3schools.com/jsref/event_onblur.asp

 

onblur Event

onblur Event ❮ DOM Events ❮ FocusEvent Example Execute a JavaScript when a user leaves an input field:

Try it Yourself » More "Try it Yourself" examples below. Definition and Usage The onblur event occurs when

www.w3schools.com

 

 

'React' 카테고리의 다른 글

[Hooks] 2 : useEffect  (0) 2020.08.26
setUrl / handleUrl  (0) 2020.08.26
React Context Provider Login  (0) 2020.08.18
[React 스터디] 1 : 주요 개념  (0) 2020.08.16
조건부 렌더링  (0) 2020.08.10

댓글