"Internet is for everyone, but it won't be unless WE make it so."
Vint Cerf, 7. April 1999
모든 사람이 동등하게 웹을 사용할 수 있어야 한다.
정보를 다르게 처리하는 사람들은 모두 웹 사이트와 앱에 액세스하고 사용할 수 있어야 한다.
영구적/일시적/상황적 장애 외에도
모바일 장치를 사용하는 사람이나 느린 네트워크 연결을 사용하는 사람들도 포함한다.
웹 기술에는 접근성을 위한 많은 기능이 있으며 우리는 모든 사용자를 배제하지 않도록 이러한 기능을 사용해야 한다.
대상은 스크린 리더(말 그대로 사용자에게 웹 페이지를 읽어주는 앱)를 사용하므로,
스크린 리더 테스트가 필요하다.
MacOS 사용자는
cmd + F5
로 VoiceOver를 사용해보자
확대, 대비, 색상 고려 및 TTS(텍스트 음성 변환)등의 지원이 있다.
스크린 리더같은 특별한 보조 장치는 없다.
비디오와 함께 표시될 수 있는 텍스트(예: 자막/캡션) 등 오디오 콘텐츠에 대해 텍스트 대안 제공을 염두에 두어야 한다.
웹 사이트를 가능한 한 논리적이고 일관적이게 디자인해 혼란스러움을 최소화한다.
이 부분은 능력이나 장애에 관계 없이 모든 사람에게 편리하다.
HTML5의 올바른 태그 요소 사용하기
랜드마크를 사용하면 스크린 리더를 사용해 웹 페이지의 섹션으로 이동할 수 있다.
랜드마크 요소 : <header>
, <nav>
, <main>
, <aside>
, <section>
, <footer>
<section>
에서는 레이블(aria-label
을 추가하면 스크린 리더 사용자에게 도움이 된다.)
<div role="button"></div>
<select name="countryCode">…</select> // 액세스 불가능
<select aria-label="countryCode" name ="countryCode">…</select> // 액세스 가능
<div role="button" aria-expanded="false">name</div>
Apple에 따르면 7이 선호되지만 최소 4.5를 위해 노력해야 한다. Contrast Ratio
text-underline-offset
등의 CSS 속성을 사용하자)alt
를 사용해 이미지의 의미를 읽어야 한다.aria-hidden="true"
사용<i class="navbarIcon" role="img" aria-hidden="true"></i>
<svg aria-hidden="true" …></svg>
이미지를 설명하거나 이미지의 의도를 잘 설명해야 한다.
unvisited
, visited
, hover
, active
, focus
unvisited
, visited
focus
. outline-color
및 outline-offset
CSS 속성 사용시각적으로 명확하고, 명확한 문구
키보드 포커스, 탭 포커스
효과 : 테두리나 윤곽선
탭 키, Enter를 눌러 링크로 빠르게 도달한다.
<header>
<a href="#main" class="skip">Skip to main content</a>
…
</header>
…
<main id="main">
.skip {
position: absolute;
left: -10000px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}
.skip:focus {
position: static;
width: auto;
height: auto;
}
화면을 읽는 도구
<!DOCTYPE html>
<html lang="en">
<a href="https://id.wikipedia.org/wiki/Disleksia" lang="id" hreflang="id">Bahasa Indonesia</a>
위 문법은 스크린 리더와 검색 엔진에 적합하다.
label
: 시각적 레이블은 검색 양식 필드 정보를 설명한다.
aria-label
: 시각적 레이블이 없는 필드에서 사용한다.
legend
: 높은 수준의 레이블은 fieldset
과 legend
로 만들어진다.
검색을 쉽고 효율적으로 만들어 준다.
자동 완성은 액세스 가능해야 한다.
<input name="firstName" id="firstNameInput" type="text" pattern="[^.]*?" aria-describedby="firstName-length-error" aria-invalid="true">
form
필드에 focus
를 나타내야 한다.접근 가능한 닫기 버튼, 체크박스, 라디오 버튼, 오버레이 및 팝업 등의 프롬프트 처리, 데이터 시각화, 포커스 트랩, 토글 스위치, 툴팁, 미디어 플레이어,
Accesibility
What is accessibility?
A Complete Guide To Accessible Front-End Components
정말 도움이 많이 되네요 .. 깔끔한 정리 감사합니다 !