웹접근성 고려한 html
0. 크로스브라우징을 고려하여 html, css가 작성되었는가?
- 서울시 기준 ie11까지는 고려해야함. ie11, edge, chrome, firefox에서 구동 확인
- W3C 마크업, CSS 검사 서비스 통과
1. 문서 기본 언어가 (html lang="ko") 로 설정 되었는가?
2. 대체 텍스트가 적절히 들어갔는가?
- img에 alt 속성이 적절히 들어갔는지? (디자인을 위한 의미없는 img의 경우 alt="" 로 값 비우기)
3. 페이지 이동은 a, 그 외는 button으로 적절히 사용되었는가?
- a태그로 페이지 이동이 아닌 이벤트 구현시 onclick="return false;" 등 포커스 이동을 막는것이 쓰였는가?
4. table
- scope 속성이 잘 쓰였는가 ? (thead 안에 th의 경우 scope="col" , tbody 안에 th의 경우 scope="row" 적용)
- 테이블에 대한 요약설명 <caption></caption>이 들어갔는가 ? (summary는 표준 속성이 아니므로 사용 X)
5. 시맨틱 태그가 적절히 씌였는가 ?
- header, nav, main, aside, section, article, footer 등 시멘틱 태그로 레이아웃 구성
- h1~h6 헤딩 태그 적절하게 사용
6. form
- label, fieldset, legend 등이 사용되었는가?
- <input type="image | hidden | submit | button | reset">을 제외한 모든 <input>, <textarea>, <select> 요소 에 1:1 대응하는 <label>요소 또는 title 속성을 통해 레이블을 제공해야 함
- 단, 화면상에 연결할 레이블이 표현되는 경우는 반드시 <label>로 연결해야 준수한 것으로 인정
7. 키보드 접근 테스트가 완료되었는가?
- 탭의 이동 순서도 신경써야함 (일반적으로 페이지의 좌측 상단 영역에서 우측 하단 영역으로 이동)
- tab은 다음, shift+tab은 이전. focus 됬을때 outline 제거 css가 있으면 삭제. outline이 아니더라도, 반드시 클릭 요소는 focus 효과가 나타나야 함.
- mouseover/ mouseleave 뿐만 아니라 focus, focusout 효과도 동일하게 적용되어야 함.
8. skip nav가 있는가 ?
- 메뉴 (gnb) 바로가기, 본문 (container) 바로가기
- 처음에는 시각적으로 숨기고, 포커싱 상태 (tab으로 이동 등)에만 보이도록. 스크린리더 or 키보드를 이용하는 사용자가 주요 컨텐츠로 바로 넘어갈수 있도록 하기 위함.
9. 새 창으로 열리는건 title에 새 창으로 열린다고 표시되었는가?
ex) <a href=“…” title=“새 창”>개인정보처리방침</a>
10. 자동재생 배경음악이 없는가?
11. 명도대비가 확실한가?
(명도 대비 : 저시력자와 고령자를 위해, 콘텐츠와 배경 간의 명도 대비는 4.5:1 이상)
http://www.colorsontheweb.com/Color-Tools/Color-Contrast-Analyzer
웹접근성 고려한 CSS
1. 폰트 크기는 본문 텍스트 기준 15-18px는 되어야 함.
- 스마트폰에서 읽기 충분한 사이즈로 키우기
2. 브라우저 기본 줄간격은 1.2 임. 웹 접근성 가이드에서는 1.5를 권장.
3. 가상 요소 (content : '';)로 텍스트 넣지 말기
- content 속성으로 폰트 아이콘이나 특수문자와 같은 비문자 콘텐츠를 추가할 때도 스크린 리더기에서 읽을 수 있음. 그렇기 때문에 aria-hidden="true" 를 추가하여 숨기기.
4. 화면 스크린 외에 다른 기기에서 어떻게 보일지 설정 (media query)
5. 더 지원 범위가 넓은 선언 이후 사용하고자 하는 최신 속성 선언
- ex. ie 구버전에서도 먹히는 속성 -> 최신 브라우저에서만 먹히는 속성
- vendor prefix 잘 쓰기.
( webkit-: 크롬, 사파리, 최신 버전의 오페라 / -moz-: 파이어폭스 / -o-: 구 버전의 오페라 / -ms-: IE 또는 Edge )
6. 콘텐츠를 숨길때 visibility:hidden이나 display:none 은 사용자, 스크린리더에서 모두 사라져버림. hidden 이라는 클래스를 미리 지정해서 시각적으로만 숨겨야 함.
.visually-hidden {
position: absolute;
white-space: nowrap;
width: 1px;
height: 1px;
overflow: hidden;
border: 0;
padding: 0;
clip: rect(0 0 0 0);
clip-path: inset(50%);
margin: -1px;
}
7. 포커싱 상태의 outline 삭제 하지 않기 (삭제보다는 다른 대안으로 css를 넣기).
- 마우스가 아닌 키보드로 접근하는 사용자들을 위함! 포커싱 상태임을 나타낼수 있도록 디자인을 바꿔서 사용자에게 알려줘야함.
- 자식이 포커싱 됬을때도 포커스 효과 넣을수 있음 ( 선택자:focus-within {} 로 ) - ie에서는 지원x
8. 요소들 나열 순서 유의 : 시각적으로 보이는것과 실제 html 내에서 순서 동일하도록.
css 개선
- 네이밍 규칙(이미지 파일 이름, 클래스네임 등) 확실하게 정해서 잘 지키기 (내부에서 통일)
- 단축 속성 사용 (ex. margin-bottom:30px; margin-left:20px; 로 쓰기보다는 margin: 0px 30px 0px 20px; 로 쓰기)
- 복잡한 selector 피하기
- 반응형일 경우 모바일부터 맞추기 (작은 화면부터 큰 화면으로 맞추기) > min-width 사용!
웹 표준 및 호환성 준수 검사방법
1. 웹표준 문법을 준수하여 구축하여야 함
- 표준 (x)HTML 문법 준수 여부,표준 CSS 문법 준수 여부
W3C Markup Validation (http://validator.w3.org/)통과
W3C CSS Validation (http://jigsaw.w3.org/css-validator)통과
- 문자(한글)부호화 준수, 제어 기능의 표준 준수, 비표준 기술제거
2. 웹호환성 확보로 크로스브라우징을 지원하여야 함
- 기능 호환성 확보 여부, 화면표시 호환성 확보 여부(4종 브라우저)
※ 4종 브라우저(Edge, Chrome, Whale, Firefox)
참고)
최신 정보통신접근성(웹 접근성) 및 웹 표준 준수 가이드 안내(서울시)
https://news.seoul.go.kr/gov/archives/47485
웹 접근성 연구소
웹 접근성 지침 항목별 준수 가이드라인
http://210.116.77.11/pbGuide/guide/html/wah/wahGuide2.html
웹 접근성 직군별 교육
https://nuli.navercorp.com/education
웹 접근성 진단 도구
https://nuli.navercorp.com/education/tools
기획자가 챙겨야 할 웹 접근성
https://germweapon.tistory.com/403
웹 접근성? 웹 표준? 웹 접근성을 위한 규칙들
CSS 개선을 위한 10가지 방법
https://erwinousy.medium.com/css-개선을-위한-10가지-방법-9923b106661c
'퍼블리싱 > HTML | CSS | Javascript' 카테고리의 다른 글
스크롤 끝에서 컨텐츠 추가 (0) | 2023.05.12 |
---|---|
카운팅 스크립트 (0) | 2023.05.12 |
nth-child (n번째 부터 n번째 까지 css적용) (0) | 2022.10.13 |
background linear gradient 사용시 border-bottom에 하얀색 라인이 생길때 (0) | 2022.09.26 |
vanilla javascript accordion menu (0) | 2022.06.07 |