
정보에 대한 접근 → 인권
인터넷은 모든 사람을 위한 것임
청력 → 오디오 스크립트, 비디오 캡션
시각 → TTS, 확대 축소, 대비, 색맹
<div/> <span/> 의 경우 우리에게 아무런 정보를 주지 않음<form> <table> <article><section> VS <aside><button> VS <a>스크린 리더가 이를 버튼으로 인식할 수 있음클릭 가능< a href ="/about/" > 회사 소개 < /a ><button role="button"> -> 이미 버튼 role 속성이 내장되어 있음< select aria-label ="국가 호출 코드" name ="countryCode" > ... < 선택 >aria-expanded="false"<div role="button" aria-expanded="false">When do I get charged for a ride?</div>사용 이유 : 색맹, 시력 감소, 햇빛 같은 경우 필요
명암비란?
배경색에 대한 텍스트 또는 그래픽 간의 대비를 측정함
흰색 배경 → 흰색 텍스트 : 명암비 1
흰색 배경 → 검정색 텍스트 : 명암비 21
  → 완벽한 비율은 존재하지 않고 애플 기준 7이 선호 되지만, 최소 4.5를 위해 노력
밝으면 → 가장 밝은 부분어두우면 → 가장 어두운 부분사용 이유 : 색맹, 전화 중독 억제?
사용
색상을 유일한 시각적 지표로 사용하지 않기명암비를 준수하는 색상 선택사용 이유 : 스크린 리더 → 장식 이미지를 무시함
의미 있는 이미지의 의미배경 이미지 지정하기
빈 alt 속성
사용자 혼란을 가져옴background-image 속성
글꼴 아이콘
role을 이용하여 img라 인식하고 이를 스크린 리더가 무시하도록<i class="navbarIcon" role="img" aria-hidden="true"></i>
이미지를 설명
이미지의 의도를 잘 설명
< img src ="alibaba-logo.svg" alt ="알리바바의 고향" >
사용 이유 : alt 속성의 값 → 이미지를 설명, 의도를 설명해야 함
사용 방법
  친구와 전화 통화를 통해 웹 페이지 설명에 대한 가정
종류
비대화형 이미지
그대로 이미지에 대한 설명을 작성하면 됨
독립 실행형 아이콘
  아이콘이 하는 일을 설명 → 페이스북으로 공유
사용 이유 : 사용자가 링크와 상호 작용
종류
적용 방법
링크에는 기본적으로 링크 → 색맹인 사람에게 이를 링크라는 것을 명확히 알려줌
모든 상태는 충분한 대비를 가져야 함
focus → 오프셋을 주어 이를 설정함
outline-color, outline-offset
사용자가 수행하려는 작업을 명확하게 해줌
마우스가 지금 하려는 일을 명시적으로 알려줄 수 있음
사용 이유 : 시각 장애 → 확대 / 축소 → 녹내장
사용법
좋은 예
나쁜 예
구글 검색 또한 설명 링크를 선호함
제목은 시각적으로 명확한 문구를 사용
페이지의 개요를 설정
사용
  <h1> <h6>로 구성
  수순에 맞도록 이를 설정하는 것이 중요
시각적 초점 → 모든 사용자에게 중요
사용
포커스 제거 하지 않도록
outline: 0;
부모 요소가 너무 작아서 표시할 수 없는 포커스를 표시할 수 없는 경우
포커스를 숨기는 또 다른 일반적인 방법
overflow: hidden;
기본 포커스 스타일 표시를 제거
모바일 모드의 Chrome은 주황색 윤곽선
  모바일 장치에서는 키보드 포커스가 중요하지
<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;
}사용 이유
스크린 리더 - 화면을 읽는 도구
사용방법
  <html> lang 속성을 이용
<!DOCTYPE html>
<html lang="en">
중간에 언어가 바뀌면요?
- a 태그에 lang 속성을 달아서 페이지를 연결
 <a href="https://id.wikipedia.org/wiki/Disleksia" lang="id" hreflang="id">Bahasa Indonesia</a>
테스트
VoiceOver 기능을 이용
  aria-label 두 개 이상 있는 경우 사용
<input> <label> <fieldset> : 기본 양식 요소<select>사용 이유
입력 요소에 초점을 맞추면 label을 소리내어 읽어줌<label> aira-label
사용 방법
<label for="email">
	Your email address 
	<span class="mandatory">*</span>
</label>
<input id="email" name="email" required aria-required="true" placeholder="Email" required="">

<input placeholder="Enter search term" aria-label="Enter search term">
그룹에 대한 명시를 알려줌
확인란, 라디오 버튼 같은 예제
<fieldset>
  <legend>Your date of birth</legend>
  <label for="dobDay">Day</label>
  <select id="dobDay">…</select>
  <label for="dobMonth">Month</label>
  <select id="dobMonth">…</select>
  <label for="dobYear">Year</label>
  <input id="dobYear" type="text" placeholder="YYYY">
</fieldset>
autocomplete 속성을 사용
<input id="email" autocomplete="email" name="email" aria-required="true" placeholder="Email" required>
<select id="dobDay" autocomplete="bday-day" aria-required="true" required>
<select id="dobMonth" autocomplete="bday-month" aria-required="true" required>
<input id="dobYear" autocomplete="bday-year" placeholder="YYYY" aria-required="true" required>
사용 이유 : 우리는 입력에 실수를 할 수 있음
사용 방법
오류 메시지 : 경고 아이콘, 빨간색 텍스트로 작성
아이콘과 빨간색 테두리만으로는 모두 사용자가 이해할 수 없음
떨어져 있는 요소는 별도의 구룹에 속하는 것으로 인식
- 서로 가까이 있는 디자인 요소는 관련된 것
- 떨어져 있는 요소는 별도의 그룹에 속하는 것으로 인식
<input name="firstName" id="firstNameInput" type="text" pattern="[^.]*?">
<p id="firstName-length-error" role="alert">
	Your first name must have at least two letters and no unusual characters
</p>
aria-describedby 속성 사용
값은 오류 메시지의 ID임
<input name="firstName" id="firstNameInput" type="text" pattern="[^.]*?" aria-describedby="firstName-length-error" aria-invalid="true">
클라이언트 측 유효성 검사와 비교하여 서버 측 유효성 검사에 더 중요
사용자가 양식을 제출하면 포커스가 첫 번째 잘못된 피드로 이동
px 대신 rem을 사용
18 px → 1.125rem
line-heigth의 경우 픽셀 단위로 설정
글꼴 크기와 마찬가지로 줄 높이를 설정 시
line-heigth : 1.2;절대 단위? 상대 단위?
물리적인 측정 거리를 의미함
px
절대 길이 단위 
일반적인 모니터 디스플레이의 1픽셀을 의미함
이는 다시 글꼴 상대 길이와 뷰포트 백분율 길이로 나뉨
em, rem, vh, vw
글꼴 상대 길이  부모의 요소의 폰트 사이즈를 기준으로 함글꼴 상대 길이  루트 요소(일반적으로 <html>) 폰트 사이즈 기준높이의 1% 기준으로 함너비의 1% 기준으로 함