SlideShare ist ein Scribd-Unternehmen logo
1 von 40
OpenWAX
웹 접근성 평가도구 뜯어보기
SK플래닛 RecoPick팀
김군우 (a.k.a. 겨미겨미)
김군우
웹 (프론트엔드) 개발자
• "OpenWAX" 개발
• NCsoft, NHN에서 일했음.
• 현 SK플래닛 RecoPick팀 소
속
오늘 다룰 이야기
• OpenWAX란?
• K-WAH, OpenWAX의 차이점. 도구별 장단점.
• OpenWAX 뜯어보기
(OpenWAX의 평가 결과는 어떻게 만들어지는
가?)
• OpenWAX의 한계, 로드맵. 기여 방법
OpenWAX란?
http://openwax.net
OpenWAX(Open Web Accessibility eXtension)는
웹 페이지의 접근성 진단을 쉽게 할 수 있도록 제작된
도구
And Open Source!
크롬확장
파이어폭스확
장
북마클릿(IE)
OpenWAX란? – 제작 배경
PAJET
N-WAX
OpenWAX!
K-WAH와의 차이점
K-WAH OpenWAX
윈도우 설치 프로그램 브라우저 확장
한번에 사이트 전체 검사 가능
로그인 상태의 페이지 쉽게 검
사
검사 결과 보고서 형태로 확인
자바스크립트 코드도 반영하여
검사
오류 위치 쉽게 확인
OpenWAX뜯어보기
OpenWAX뜯어보기–1.적절한대체텍스트(img)
페이지의<img>,<inputtype="image">,<area>요소를표시
1.alt속성이아예없으면
2.alt속성이있지만비어있으면
3.alt속성이있고값이있는경우
4.longdesc가정의된경우
오류
오류가의심됨
이미지에대체텍스트가
제대로입력되었는지검사
longdesc는링크클릭하여
페이지확인
OpenWAX뜯어보기–1.적절한대체텍스트(img)
대안:WebDeveloperExtension
OpenWAX뜯어보기–오류의위치확인하기(파이어폭
스)
OpenWAX뜯어보기–오류의위치확인하기(크롬,IE
등)
OpenWAX뜯어보기–1.적절한대체텍스트(bg)
페이지의CSSBackgroundImage가사용된요소를표시
1.대체콘텐츠가없으면
2.대체콘텐츠가있으면
display:none된콘텐츠 해당요소에포함된모든텍스트
OpenWAX뜯어보기–1.적절한대체텍스트(object)
페이지의object,embed,video,audio,canvas,svg요소를표
시
1.표시만합니다.;;
OpenWAX뜯어보기–1.적절한대체텍스트(object)
대안:UIAVerify(UIAutomationVerify)
OpenWAX뜯어보기–3.색에무관한콘텐츠인식
"흑백토글"기능을제공합니다.
1.CSS3의grayscalefilter기능(Firefox,Chrome,IE9++)
2.IE/FireFox예전버전은각브라우저전용필터기능으로
흑백기능구현
OpenWAX뜯어보기–5.텍스트콘텐츠의명도대비
Chrome,FireFox확장전용기능
대안:ColourContrastAnalyzer
OpenWAX뜯어보기–5.텍스트콘텐츠의명도대비
대안:ColorContrastAnalyzer(크롬확장)
OpenWAX뜯어보기–5.텍스트콘텐츠의명도대비
대안:ColorContrastAnalyzer(크롬확장)
OpenWAX뜯어보기–5.텍스트콘텐츠의명도대비
OpenWAX뜯어보기–8.초점이동
onfocus="this.blur()"
onfocus,onclick속성에
blur()라는텍스트가포
함되는경우를검출
CSS의outline-width속
성이0으로지정된경
우를검출
OpenWAX뜯어보기–8.초점이동
대안:Naver의NULI주최세미나중...
OpenWAX가검사를못하는유형...
지정된자바스크립트
함수를headless
browser를이용하여
포함된자바스크립트
파일에서찾아볼수
있다!
OpenWAX뜯어보기–11.깜빡임과번쩍임사용제한
대안:PEAT(PhotosensitiveEpilepsyAnalysisTool)
OpenWAX뜯어보기–12.건너뛰기링크
<ahref="#content1"></a>
<ahref="#content2"></a>
<divid="content1"></div>
<aname="content2"></a>
OpenWAX뜯어보기–12.건너뛰기링크
목록에건너뛰기링크만나오는게아닌것같은데.......?
->기계적으로는href="#blah"같은링크(해시링크)중
어떤게건너뛰기링크인지아닌지모릅니다.
그래서최초링크10개중해시링크들만표시합니다.
OpenWAX뜯어보기–13.제목제공(<title>)
현재 페이지
포함된프레임의제목들
OpenWAX뜯어보기–13.제목제공(frame)
OpenWAX뜯어보기–13.제목제공(<h1>~<h6>)
OpenWAX뜯어보기–14.적절한링크텍스트
OpenWAX뜯어보기–15.기본언어표시
XHTML인데lang만있으면
lang,xml:lang이없으면...
OpenWAX뜯어보기–16.사용자요구에따른실행
알림없는새창링크
링크텍스트에알림포
title속성포함
OpenWAX뜯어보기–18.표의구성
caption,summary,th가모두
사용된경우
summary는있는데
caption,th가없는경우
OpenWAX뜯어보기–19.레이블제공
<label>,title속성
모두없는경우
title속성만
사용된경우
OpenWAX뜯어보기–21.마크업오류방지
OpenWAX뜯어보기–21.마크업오류방지
HTML4/XHTML 1 오류 유형
- end tag for [TAGNAME] omitted. (self-closing 태그 제외)
- end tag for [TAGNAME] which is not finished.
- end tag for element [TAGNAME] which is not opened.
- ID [ID] already defined.
- duplicate specification of attribute [ATTRIBUTE]
HTML5 오류 유형
- End tag [TAGNAME] seen, but there were open elements.
- Unclosed element [TAGNAME]
- Stray end tag [TAGNAME]
- Duplicate ID [ID]
- Duplicate attribute [ATTRIBUTE]
OpenWAX뜯어보기–21.마크업오류방지
HTMLValidator가해석하지말아야할
자바스크립트코드를해석하는경우
OpenWAX뜯어보기–WAXScore
OpenWAX가제공하는접근성점수입니다..
WAXScore는기계적으로검사할수있는접근성관련항목들을
100점만점으로수치화하여표시합니다.
from http://openwax.net/#guide_score
앞으로의 OpenWAX
1.불완전한 기능 개선
2.WAI-ARIA 지원
3.가이드 개선
4.영문 가이드 제작
5.사이트를 한 번에 평가
도와주세요. 
도와주세요. 
감사합니다 

Weitere ähnliche Inhalte

Was ist angesagt?

Umg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation BoxUmg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation Box대영 노
 
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...Tae-Seong Park
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 
Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판
Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판
Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판BJ Jang
 
도메인 주도 설계의 본질
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질Young-Ho Cho
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis
 
추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.choi kyumin
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드Insub Lee
 
CBD 개발방법론.pptx
CBD 개발방법론.pptxCBD 개발방법론.pptx
CBD 개발방법론.pptxSeong-Bok Lee
 
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습HaNJiN Lee
 
프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web AppsGihyo Joshua Jang
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기GunHee Lee
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례BJ Jang
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초 slhead1
 
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 [데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 choi kyumin
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Park JoongSoo
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, VueGunhee Lee
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 

Was ist angesagt? (20)

Umg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation BoxUmg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation Box
 
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판
Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판
Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판
 
도메인 주도 설계의 본질
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
 
추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
CBD 개발방법론.pptx
CBD 개발방법론.pptxCBD 개발방법론.pptx
CBD 개발방법론.pptx
 
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 
프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
QGIS 기초
QGIS 기초 QGIS 기초
QGIS 기초
 
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 [데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 

Andere mochten auch

그래프서치20810587우대식
그래프서치20810587우대식그래프서치20810587우대식
그래프서치20810587우대식Webometrics Class
 
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다Nts Nuli
 
Check style 기초가이드
Check style 기초가이드Check style 기초가이드
Check style 기초가이드rupert kim
 
Requirement matrix
Requirement matrixRequirement matrix
Requirement matrixbususu
 
150514 경북대학교(콘텐츠산업과 창업)
150514 경북대학교(콘텐츠산업과 창업)150514 경북대학교(콘텐츠산업과 창업)
150514 경북대학교(콘텐츠산업과 창업)Hee Dae Kim
 
Release and versioning
Release and versioningRelease and versioning
Release and versioning도형 임
 
001.경제원론2-개관 (ku,snu 2015f)
001.경제원론2-개관 (ku,snu 2015f)001.경제원론2-개관 (ku,snu 2015f)
001.경제원론2-개관 (ku,snu 2015f)Namun Cho
 
Dream maker 1(융합은 연결이다)
Dream maker 1(융합은 연결이다)Dream maker 1(융합은 연결이다)
Dream maker 1(융합은 연결이다)경태 민
 
ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구
ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구
ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구Kyung Hyun Roh
 
스토리포인트로 공수산정하기 운선순위정하기
스토리포인트로 공수산정하기 운선순위정하기스토리포인트로 공수산정하기 운선순위정하기
스토리포인트로 공수산정하기 운선순위정하기도형 임
 
유지보수성이 sw의 품질이다.
유지보수성이 sw의 품질이다.유지보수성이 sw의 품질이다.
유지보수성이 sw의 품질이다.도형 임
 
모션 용기
모션 용기모션 용기
모션 용기Sujin Han
 
역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈
역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈
역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈HT Kim
 
Toc quality management
Toc quality managementToc quality management
Toc quality managementNamkee Chung
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍Tae Young Lee
 
코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)ChulHui Lee
 
제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질
제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질
제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질Minsuk Chang
 
마케팅 기본 개념_2010.12
마케팅 기본 개념_2010.12마케팅 기본 개념_2010.12
마케팅 기본 개념_2010.12James Kwon
 

Andere mochten auch (20)

그래프서치20810587우대식
그래프서치20810587우대식그래프서치20810587우대식
그래프서치20810587우대식
 
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다
 
Check style 기초가이드
Check style 기초가이드Check style 기초가이드
Check style 기초가이드
 
K.study. 9.5
K.study. 9.5K.study. 9.5
K.study. 9.5
 
Requirement matrix
Requirement matrixRequirement matrix
Requirement matrix
 
150514 경북대학교(콘텐츠산업과 창업)
150514 경북대학교(콘텐츠산업과 창업)150514 경북대학교(콘텐츠산업과 창업)
150514 경북대학교(콘텐츠산업과 창업)
 
Release and versioning
Release and versioningRelease and versioning
Release and versioning
 
001.경제원론2-개관 (ku,snu 2015f)
001.경제원론2-개관 (ku,snu 2015f)001.경제원론2-개관 (ku,snu 2015f)
001.경제원론2-개관 (ku,snu 2015f)
 
Dream maker 1(융합은 연결이다)
Dream maker 1(융합은 연결이다)Dream maker 1(융합은 연결이다)
Dream maker 1(융합은 연결이다)
 
ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구
ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구
ISO 25000과 ISO 29119를 활용한 임베디드 소프트웨어 시험 평가 방법에 관한 연구
 
스토리포인트로 공수산정하기 운선순위정하기
스토리포인트로 공수산정하기 운선순위정하기스토리포인트로 공수산정하기 운선순위정하기
스토리포인트로 공수산정하기 운선순위정하기
 
유지보수성이 sw의 품질이다.
유지보수성이 sw의 품질이다.유지보수성이 sw의 품질이다.
유지보수성이 sw의 품질이다.
 
모션 용기
모션 용기모션 용기
모션 용기
 
역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈
역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈
역사 속 초기 데이터 전문가를 통해 배우는 5가지 교훈
 
Toc quality management
Toc quality managementToc quality management
Toc quality management
 
Kotler Keller 마케팅관리론 14판 요약 강의 13장. 서비스
Kotler Keller 마케팅관리론 14판 요약 강의 13장. 서비스Kotler Keller 마케팅관리론 14판 요약 강의 13장. 서비스
Kotler Keller 마케팅관리론 14판 요약 강의 13장. 서비스
 
20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍20141111 파이썬으로 Hadoop MR프로그래밍
20141111 파이썬으로 Hadoop MR프로그래밍
 
코드의 품질 (Code Quality)
코드의 품질 (Code Quality)코드의 품질 (Code Quality)
코드의 품질 (Code Quality)
 
제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질
제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질
제2부 제조 및 서비스 프로세스 제10장 식스시그마 품질
 
마케팅 기본 개념_2010.12
마케팅 기본 개념_2010.12마케팅 기본 개념_2010.12
마케팅 기본 개념_2010.12
 

Ähnlich wie 웹 접근성 평가도구 OpenWAX 뜯어보기

[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표OpenStack Korea Community
 
오픈 R&D 거버넌스
오픈 R&D 거버넌스오픈 R&D 거버넌스
오픈 R&D 거버넌스Kevin Kim
 
오픈스택데이 오픈소스PaaS 솔루션 - openshift 소개
오픈스택데이   오픈소스PaaS 솔루션 - openshift 소개오픈스택데이   오픈소스PaaS 솔루션 - openshift 소개
오픈스택데이 오픈소스PaaS 솔루션 - openshift 소개Hojoong Kim
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE 흥래 김
 
Openstackday korea-use-opentack-to-integrate-non-openstack-service
Openstackday korea-use-opentack-to-integrate-non-openstack-serviceOpenstackday korea-use-opentack-to-integrate-non-openstack-service
Openstackday korea-use-opentack-to-integrate-non-openstack-serviceJunHo Yoon
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초Gihyo Joshua Jang
 
CSS Round Display KIG 발표자료
CSS Round Display KIG 발표자료CSS Round Display KIG 발표자료
CSS Round Display KIG 발표자료Hyojin Song
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈NAVER D2
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)Software in Life
 
20161110 cmlee opnfv_colorado1.0_분석
20161110 cmlee opnfv_colorado1.0_분석20161110 cmlee opnfv_colorado1.0_분석
20161110 cmlee opnfv_colorado1.0_분석Cheolmin Lee
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업NAVER D2
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Appsjungkees
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기Ian Choi
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a jobDeo Kim
 
2015 FOSScon NAVER OSS Governance
2015 FOSScon NAVER OSS Governance2015 FOSScon NAVER OSS Governance
2015 FOSScon NAVER OSS GovernanceNAVER Engineering
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)NAVER D2
 

Ähnlich wie 웹 접근성 평가도구 OpenWAX 뜯어보기 (20)

[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
 
오픈 R&D 거버넌스
오픈 R&D 거버넌스오픈 R&D 거버넌스
오픈 R&D 거버넌스
 
오픈스택데이 오픈소스PaaS 솔루션 - openshift 소개
오픈스택데이   오픈소스PaaS 솔루션 - openshift 소개오픈스택데이   오픈소스PaaS 솔루션 - openshift 소개
오픈스택데이 오픈소스PaaS 솔루션 - openshift 소개
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
 
Openstackday korea-use-opentack-to-integrate-non-openstack-service
Openstackday korea-use-opentack-to-integrate-non-openstack-serviceOpenstackday korea-use-opentack-to-integrate-non-openstack-service
Openstackday korea-use-opentack-to-integrate-non-openstack-service
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초
 
CSS Round Display KIG 발표자료
CSS Round Display KIG 발표자료CSS Round Display KIG 발표자료
CSS Round Display KIG 발표자료
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
 
HTML5 와 미래웹기술 part 3
HTML5 와 미래웹기술 part 3HTML5 와 미래웹기술 part 3
HTML5 와 미래웹기술 part 3
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
 
20161110 cmlee opnfv_colorado1.0_분석
20161110 cmlee opnfv_colorado1.0_분석20161110 cmlee opnfv_colorado1.0_분석
20161110 cmlee opnfv_colorado1.0_분석
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a job
 
about OWI
about OWIabout OWI
about OWI
 
2015 FOSScon NAVER OSS Governance
2015 FOSScon NAVER OSS Governance2015 FOSScon NAVER OSS Governance
2015 FOSScon NAVER OSS Governance
 
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)[154] 데이터 센터의 오픈 소스 open compute project (ocp)
[154] 데이터 센터의 오픈 소스 open compute project (ocp)
 

Mehr von Goonoo Kim

Slack trello notification guide
Slack trello notification guideSlack trello notification guide
Slack trello notification guideGoonoo Kim
 
댓글 플러그인 아포가토
댓글 플러그인 아포가토댓글 플러그인 아포가토
댓글 플러그인 아포가토Goonoo Kim
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015Goonoo Kim
 
마크업 개발, 어떤툴들을 사용하시나요?
마크업 개발, 어떤툴들을 사용하시나요?마크업 개발, 어떤툴들을 사용하시나요?
마크업 개발, 어떤툴들을 사용하시나요?Goonoo Kim
 
Wai Aria In Real World
Wai Aria In Real WorldWai Aria In Real World
Wai Aria In Real WorldGoonoo Kim
 

Mehr von Goonoo Kim (6)

Slack trello notification guide
Slack trello notification guideSlack trello notification guide
Slack trello notification guide
 
댓글 플러그인 아포가토
댓글 플러그인 아포가토댓글 플러그인 아포가토
댓글 플러그인 아포가토
 
WAI-ARIA
WAI-ARIAWAI-ARIA
WAI-ARIA
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
 
마크업 개발, 어떤툴들을 사용하시나요?
마크업 개발, 어떤툴들을 사용하시나요?마크업 개발, 어떤툴들을 사용하시나요?
마크업 개발, 어떤툴들을 사용하시나요?
 
Wai Aria In Real World
Wai Aria In Real WorldWai Aria In Real World
Wai Aria In Real World
 

Kürzlich hochgeladen

JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 

Kürzlich hochgeladen (7)

JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 

웹 접근성 평가도구 OpenWAX 뜯어보기

Hinweis der Redaktion

  1. OpenWAX 웹접근성 평가도구 뜯어보기라는 주제로 발표를 준비하였습니다.
  2. 저는 웹 개발자 김군우입니다. 오늘 소개해드릴 접근성 평가도구 OpenWAX을 개발했으며, 현재 SK플래닛에서 추천 플랫폼 서비스 레코픽팀에서 일하고 있습니다.
  3. 오늘 다룰 이야기는 OpenWAX란 무엇인지, 진흥원에서 제공되는 도구인 K-WAH와의 차이점 및 장단점을 알아보고, OpenWAX의 각 항목별 평가 결과를 만들기 위한 프로그램 로직 등을 뜯어봅니다. 마지막으로는 OpenWAX의 현재 한계, 앞으로의 로드맵, 개발에 참여하시는 방법 등을 알려드립니다.
  4. OpenWAX는 Open Web Accessibility eXtension라는 뜻으로 웹 페이지의 접근성 진단을 쉽게 할 수 있도록 제작된 도구입니다. OpenWAX는 구글 크롬 확장, 파이어폭스 확장 및 인터넷 익스플로러 등 다른 브라우저를 위한 북마클릿 총 3가지 형태로 설치하실 수 있습니다.
  5. OpenWAX는 홍윤표님과 신현석님의 주도로 제작된 도구인 PAJET(파젯)의 아이디어로 만들어졌습니다. OpenWAX는 처음에는 N-WAX라는 이름으로 네이버에서 제작되었습니다. 제가 네이버에 있었을 때 제작하였고요. N-WAX는 네이버 자체 접근성 가이드를 기준으로 제작되었던 도구였는데, 제가 네이버 퇴사 후 KWCAG 2.0의 기준에 맞추어 품질마크 평가 및 평가 대비 시 활용할 수 있도록 수정하여 OpenWAX라는 이름으로 제작하게 되었습니다.
  6. 정보화진흥원에서는 K-WAH라는 도구를 제공하고 있는데요. OpenWAX는 K-WAH랑은 어떻게 다른지 각각이 어떤 장점을 갖고 있는지 살펴보겠습니다. 우선 K-WAH는 윈도우에 설치하는 프로그램입니다. 설치 후 실행하여 사용하는 것이죠. 반면에 OpenWAX는 브라우저 확장 기능 혹은 브라우저에 북마크 형태로 추가되는 북마클릿의 형태를 하고 있습니다. 브라우저에서 검사할 웹 페이지를 열어놓은 상태로 실행하는 것이죠. K-WAH의 장점은 사이트를 한번에 평가할 수 있다는 것입니다. 평가할 사이트의 URL을 넣으면 그 사이트를 크롤링해서 각 페이지의 HTML 코드를 통해 검사를 수행하여 보고서를 제공해줍니다. 어떤 사이트의 접근성 수준이 어떤가 알아볼 때 딱이죠. OpenWAX의 장점은 브라우저를 통해 실행하여 오류가 어느 위치에 있는지 쉽게 파악하여 보다 쉽게 수정할 수 있다는 것입니다. 또한 이후에도 말씀드리겠지만 로그인 상태의 페이지도 쉽게 검사하다는 장점 또한 있습니다. 한 페이지, 한 페이지를 심층적으로 점검하고 싶거나 사이트의 접근성 개선하고자 하신다면 OpenWAX를 선택하시면 좋을 것이라고 생각합니다.
  7. 이제부터는 OpenWAX의 각 항목의 동작 원리, 결과 확인 방법 등을 알아보겠습니다. 먼저 "1. 적절한 대체 텍스트 (img)" 항목입니다. 이 항목은 검사하는 페이지에 사용된 <img>, <input type="image">, <area> 요소를 표시합니다. alt 속성이 아예 없는 경우 오류로, alt 속성이 있지만 비어 있는 경우에는 오류가 의심되는 것으로, alt 속성이 있고 값이 있는 경우에는 해당 alt 속성 값을 표시합니다. longdesc 속성이 정의된 경우 해당 링크가 alt 속성 값과 함께 제공됩니다. 오류와 오류가 의심되는 것은 현재 배경 색과 아이콘으로만 표시되고 있어 접근성 평가도구이면서 아이러니하게도 자체적인 접근성이 없는 상태입니다. 어서 개선하도록 하겠습니다.
  8. 이제부터는 OpenWAX의 각 항목의 동작 원리, 결과 확인 방법 등을 알아보겠습니다. 먼저 "1. 적절한 대체 텍스트 (img)" 항목입니다. 이 항목은 검사하는 페이지에 사용된 <img>, <input type="image">, <area> 요소를 표시합니다. alt 속성이 아예 없는 경우 오류로, alt 속성이 있지만 비어 있는 경우에는 오류가 의심되는 것으로, alt 속성이 있고 값이 있는 경우에는 해당 alt 속성 값을 표시합니다. longdesc 속성이 정의된 경우 해당 링크가 alt 속성 값과 함께 제공됩니다. 오류와 오류가 의심되는 것은 현재 배경 색과 아이콘으로만 표시되고 있어 접근성 평가도구이면서 아이러니하게도 자체적인 접근성이 없는 상태입니다. 어서 개선하도록 하겠습니다.
  9. 파이어폭스 확장을 사용하시는 경우 파이어버그가 설치되어 있는 경우 각 평가 결과를 클릭 시 파이어버그에서 해당 결과의 DOM 위치를 표시하여 어떤 위치에 있는 내용인지 찾기가 수월합니다.
  10. 크롬 확장이나 북마클릿을 사용하시는 경우 각 평가 결과를 클릭 시 해당 결과에 초점을 이동시키며, 개발자 콘솔에 해당하는 DOM의 XPATH를 표시합니다. 파이어폭스 확장보다는 다소 불편하여 개선이 필요한 부분입니다.
  11. "적절한 대체 텍스트 (bg)" 항목입니다. 이 항목은 검사하는 페이지에 사용된 요소 중 CSS 배경 이미지가 사용된 요소를 표시합니다. 대체 콘텐츠가 없으면 내용이 빈 채로 보이고, 대체 콘텐츠가 있으면 해당 대체 콘텐츠가 표시됩니다. 대체 콘텐츠는 요소가 포함하고 있는 모든 텍스트입니다. 해당 요소 안에 포함된 요소의 수가 지나치게 많은 경우에는 – 보통 wrap, container 뭐 이런 id나 클래스가 쓰인 요소들이 이에 해당되는데요. - 의미있는 이미지인 경우가 드물고 포함된 텍스트가 너무 많아서 무의미하다고 판단하여 결과에 표시되지 않게 해두었습니다.
  12. "적절한 대체 텍스트 (object)" 항목입니다. 이 항목에서는 페이지에 사용된 <object>, <embed>, <video>, <audio>, <canvas>, <svg> 요소를 단순히 표시만 합니다. 평가할 임베드 콘텐츠가 있다는 정도의 정보라고 생각하시면 되겠습니다.
  13. 이제부터는 OpenWAX의 각 항목의 동작 원리, 결과 확인 방법 등을 알아보겠습니다. 먼저 "1. 적절한 대체 텍스트 (img)" 항목입니다. 이 항목은 검사하는 페이지에 사용된 <img>, <input type="image">, <area> 요소를 표시합니다. alt 속성이 아예 없는 경우 오류로, alt 속성이 있지만 비어 있는 경우에는 오류가 의심되는 것으로, alt 속성이 있고 값이 있는 경우에는 해당 alt 속성 값을 표시합니다. longdesc 속성이 정의된 경우 해당 링크가 alt 속성 값과 함께 제공됩니다. 오류와 오류가 의심되는 것은 현재 배경 색과 아이콘으로만 표시되고 있어 접근성 평가도구이면서 아이러니하게도 자체적인 접근성이 없는 상태입니다. 어서 개선하도록 하겠습니다.
  14. "색에 무관한 콘텐츠 인식" 항목입니다. 이 항목에서는 "흑백 토글" 버튼이 하나 제공되며 버튼을 누르면 페이지 전체가 흑백과 원본으로 토글됩니다. 흑백 상태로 만들어 색상 정보를 제거한 후 인식이 안되는 콘텐츠가 있는지 살펴보시면 됩니다.
  15. "텍스트 콘텐츠의 명도 대비" 항목입니다. 파이어폭스와 구글 크롬 확장을 사용하시는 경우 이 기능을 쓸 수 있는데요. 구글 크롬은 최신 버전으로 해보니 제대로 동작이 안되더군요. 처음 제작했을 때도 매끄럽게 동작은 안되었었는데 잘 안되는 걸 보니 빠른 개선이 필요한 상태입니다. 파이어폭스 확장을 쓰시는 경우에는 잘 이용하실 수 있으리라 생각합니다.
  16. 이제부터는 OpenWAX의 각 항목의 동작 원리, 결과 확인 방법 등을 알아보겠습니다. 먼저 "1. 적절한 대체 텍스트 (img)" 항목입니다. 이 항목은 검사하는 페이지에 사용된 <img>, <input type="image">, <area> 요소를 표시합니다. alt 속성이 아예 없는 경우 오류로, alt 속성이 있지만 비어 있는 경우에는 오류가 의심되는 것으로, alt 속성이 있고 값이 있는 경우에는 해당 alt 속성 값을 표시합니다. longdesc 속성이 정의된 경우 해당 링크가 alt 속성 값과 함께 제공됩니다. 오류와 오류가 의심되는 것은 현재 배경 색과 아이콘으로만 표시되고 있어 접근성 평가도구이면서 아이러니하게도 자체적인 접근성이 없는 상태입니다. 어서 개선하도록 하겠습니다.
  17. 이제부터는 OpenWAX의 각 항목의 동작 원리, 결과 확인 방법 등을 알아보겠습니다. 먼저 "1. 적절한 대체 텍스트 (img)" 항목입니다. 이 항목은 검사하는 페이지에 사용된 <img>, <input type="image">, <area> 요소를 표시합니다. alt 속성이 아예 없는 경우 오류로, alt 속성이 있지만 비어 있는 경우에는 오류가 의심되는 것으로, alt 속성이 있고 값이 있는 경우에는 해당 alt 속성 값을 표시합니다. longdesc 속성이 정의된 경우 해당 링크가 alt 속성 값과 함께 제공됩니다. 오류와 오류가 의심되는 것은 현재 배경 색과 아이콘으로만 표시되고 있어 접근성 평가도구이면서 아이러니하게도 자체적인 접근성이 없는 상태입니다. 어서 개선하도록 하겠습니다.
  18. 이제부터는 OpenWAX의 각 항목의 동작 원리, 결과 확인 방법 등을 알아보겠습니다. 먼저 "1. 적절한 대체 텍스트 (img)" 항목입니다. 이 항목은 검사하는 페이지에 사용된 <img>, <input type="image">, <area> 요소를 표시합니다. alt 속성이 아예 없는 경우 오류로, alt 속성이 있지만 비어 있는 경우에는 오류가 의심되는 것으로, alt 속성이 있고 값이 있는 경우에는 해당 alt 속성 값을 표시합니다. longdesc 속성이 정의된 경우 해당 링크가 alt 속성 값과 함께 제공됩니다. 오류와 오류가 의심되는 것은 현재 배경 색과 아이콘으로만 표시되고 있어 접근성 평가도구이면서 아이러니하게도 자체적인 접근성이 없는 상태입니다. 어서 개선하도록 하겠습니다.
  19. "초점 이동" 항목입니다. 이 항목에서는 HTML 코드에 onfocus 또는 onclick 속성이 제공되었으며 해당 값에 blur()라는 텍스트가 포함되는 경우 오류로 표시합니다. focus, click 이벤트를 HTML 코드에 넣은 게 아니라 별도의 자바스크립트 코드나 파일로 만든 경우, 아니면 jQuery를 이용하여 이벤트를 추가한 경우는 제대로 검출하지 못하는 문제가 있습니다. 이 항목에서는 또 CSS의 outline-width 속성이 0으로 지정된 경우도 오류로 표시합니다. 이 경우에는 해당 요소에 초점 이동 시 초점이 시각적으로 구분되는지 확인하시어 확인이 된다면 오류가 아닌 것으로 판단하시면 되겠습니다.
  20. "초점 이동" 항목입니다. 이 항목에서는 HTML 코드에 onfocus 또는 onclick 속성이 제공되었으며 해당 값에 blur()라는 텍스트가 포함되는 경우 오류로 표시합니다. focus, click 이벤트를 HTML 코드에 넣은 게 아니라 별도의 자바스크립트 코드나 파일로 만든 경우, 아니면 jQuery를 이용하여 이벤트를 추가한 경우는 제대로 검출하지 못하는 문제가 있습니다. 이 항목에서는 또 CSS의 outline-width 속성이 0으로 지정된 경우도 오류로 표시합니다. 이 경우에는 해당 요소에 초점 이동 시 초점이 시각적으로 구분되는지 확인하시어 확인이 된다면 오류가 아닌 것으로 판단하시면 되겠습니다.
  21. "초점 이동" 항목입니다. 이 항목에서는 HTML 코드에 onfocus 또는 onclick 속성이 제공되었으며 해당 값에 blur()라는 텍스트가 포함되는 경우 오류로 표시합니다. focus, click 이벤트를 HTML 코드에 넣은 게 아니라 별도의 자바스크립트 코드나 파일로 만든 경우, 아니면 jQuery를 이용하여 이벤트를 추가한 경우는 제대로 검출하지 못하는 문제가 있습니다. 이 항목에서는 또 CSS의 outline-width 속성이 0으로 지정된 경우도 오류로 표시합니다. 이 경우에는 해당 요소에 초점 이동 시 초점이 시각적으로 구분되는지 확인하시어 확인이 된다면 오류가 아닌 것으로 판단하시면 되겠습니다.
  22. "건너뛰기 링크" 항목입니다. 여기서는 문서의 최초 10개의 링크 중 샵으로 시작하는 해시 링크와 링크의 연결 여부를 표시합니다. 연결이 되지 않은 링크는 오류로 표시됩니다.
  23. 표시되는 결과가 최초 10개의 링크 중 샵으로 시작하는 해시 링크가 아니라 정말 건너뛰기 링크만 나오면 좋았을텐데 기계적으로 어떤 해시 링크가 건너뛰기 링크이고 어떤 해시 링크가 그렇지 않은지 구분이 안되더군요. 그래서 최초 10개의 링크 안에 아마도 건너뛰기 링크가 다 포함되어 있으리라 가정하고 이렇게 설계했습니다. 혹시 결과 중 건너뛰기 링크가 아닌 링크가 있으면 이런 까닭에 그렇구나 하고 봐주시면 되겠습니다.
  24. "제목 제공(<title>)" 항목입니다. 페이지의 제목, 페이지 내에 사용된 프레임의 제목을 표시합니다. 제목이 아예 없는 경우 – 예를 들어 타이틀 태그가 없는 경우는 오류로 표시됩니다.
  25. "제목 제공(frame)" 항목입니다. 페이지 내에 사용된 프레임의 title 속성을 표시합니다. title 속성이 비어있거나 제공되지 않은 경우 오류로 표시됩니다. 참고로, 프레임 내의 프레임도 대상이 됩니다.
  26. "제목 제공(<h1>~<h6>)" 항목입니다. 페이지와 프레임 내에 제공된 헤딩 요소와 헤딩 요소의 내용을 표시합니다. 헤딩이 하나도 없다면 검사항목 13의 오류라고 판단하실 수 있으며, 결과에 표시된 헤딩 요소와 그 내용이 제대로 되었는지도 확인하실 수 있습니다.
  27. "적절한 링크 텍스트" 항목입니다. 페이지 내의 모든 링크(<a>, <area> 요소)와 해당 링크 텍스트, 그리고 링크에 정의된 title 속성과 accesskey를 표시합니다. 링크 텍스트가 없으면 오류로 표시됩니다. title 속성은 링크가 새 창으로 열리는 경우 알림이 제공되었는지를 쉽게 확인하실 수 있도록 들어가 있습니다.
  28. "기본 언어 표시" 항목입니다. 페이지와 프레임의 <html> 태그에 정의된 lang, xml:lang 속성을 표시합니다. DTD가 XHTML이 아닌 HTML(HTML 4, HTML 5 등)인 경우 lang 속성이 없으면 오류로 표시됩니다. XHTML인 경우에는 lang 속성, xml:lang 속성이 모두 없으면 오류로 표시되며, lang 속성만 있는 경우에는 오류가 의심됨으로 표시됩니다. XHTML 1.0 Transitional은 lang 속성을 쓰는 것도 허용하고 있고 XHTML 1.0 Strict, XHTML 1.1 등 그 이외의 경우에는 xml:lang 속성만을 허용하므로 XHTML이라도 그 종류에 따르게 결과를 다르게 해석해야 합니다.
  29. "사용자 요구에 따른 실행" 항목입니다. 링크, 버튼 및 사용자 입력서식(<a>, <area>, <input>, <button>) 중 onclick 속성에 "window.open"이라는 문자열이 포함되어 있는 요소들을 표시합니다. 링크 혹은 버튼의 내용과 정의된 title 속성, 정의된 target="_blank" 속성이 함께 표시됩니다. target="_blank"가 쓰였거나 title 속성, 링크/버튼 내용에 "새창", "팝업" 등 새 창 알림이 제공된 단서가 없으면 오류로 표시됩니다.
  30. "표의 구성" 항목입니다. 사용된 모든 테이블을 표시합니다. 각 테이블에는 caption summary의 사용 여부와 그 내용이 표시되며, thead, tfoot 사용 유무 및 thead, tfoot, tbody에 쓰인 제목셀이 scope 속성값과 함께 표시됩니다. 결과의 해당 테이블이 데이터 테이블인 경우에는 caption, summary, th가 모두 제공되었는지 점검하시고, 레이아웃 테이블인 경우 caption, summary, th가 모두 없는지 점검하시면 됩니다. caption, summary, th 중 일부만 있는 경우에는 어느 쪽이더라도 잘못된 것이므로 OpenWAX에서도 오류로 표시됩니다.
  31. "레이블 제공" 항목입니다. input, select, textarea 등 모든 입력 서식과 그 유형(input 태그의 type 속성), <label> 태그로 연결된 경우의 레이블 텍스트, title 속성값을 표시합니다. 레이블과 title 속성이 모두 없는 경우 오류로 표시됩니다. title 속성만 제공된 경우 오류가 의심됨으로 표시되고요.
  32. "마크업 오류 방지" 항목입니다. 페이지와 프레임의 소스 코드를 가지고 validation 검사를 한 후 품질마크에서 다루는 태그의 중첩 오류, 속성 중복 등의 오류만 필터링 해서 표시합니다. XHTML에서 script 태그 내의 소스 코드가 CDATA 섹션 처리 되지 않는 등의 경우 validator가 오작동하여 오류 결과가 잘못 나오는 경우도 있으니 참고하시기 바랍니다. 이 항목은 OpenWAX에서 특별히 자랑할만한 항목인데요. 우선 접근성 오류에 해당하는 validation 결과만 필터링 해서 보여주는 것도 그렇지만, 로그인된 상태의 페이지의 마크업 오류를 검사하는 경우 validator 사이트를 이용할 경우 브라우저에서 로그인 후 소스 코드를 다운로드 받은 후에 다운받은 소스 코드를 validator 사이트에 업로드 하는 번거로운 과정을 거쳐야 검사가 가능한데, OpenWAX는 브라우저에서 로그인 한 후 검사를 하기만 하면 로그인 된 상태의 코드로 결과를 보여줍니다. OpenWAX를 사용하신다면 마크업 오류 방지 점검이 아주 간단해지는 것이죠!
  33. "마크업 오류 방지" 항목입니다. 페이지와 프레임의 소스 코드를 가지고 validation 검사를 한 후 품질마크에서 다루는 태그의 중첩 오류, 속성 중복 등의 오류만 필터링 해서 표시합니다. XHTML에서 script 태그 내의 소스 코드가 CDATA 섹션 처리 되지 않는 등의 경우 validator가 오작동하여 오류 결과가 잘못 나오는 경우도 있으니 참고하시기 바랍니다. 이 항목은 OpenWAX에서 특별히 자랑할만한 항목인데요. 우선 접근성 오류에 해당하는 validation 결과만 필터링 해서 보여주는 것도 그렇지만, 로그인된 상태의 페이지의 마크업 오류를 검사하는 경우 validator 사이트를 이용할 경우 브라우저에서 로그인 후 소스 코드를 다운로드 받은 후에 다운받은 소스 코드를 validator 사이트에 업로드 하는 번거로운 과정을 거쳐야 검사가 가능한데, OpenWAX는 브라우저에서 로그인 한 후 검사를 하기만 하면 로그인 된 상태의 코드로 결과를 보여줍니다. OpenWAX를 사용하신다면 마크업 오류 방지 점검이 아주 간단해지는 것이죠!
  34. "마크업 오류 방지" 항목입니다. 페이지와 프레임의 소스 코드를 가지고 validation 검사를 한 후 품질마크에서 다루는 태그의 중첩 오류, 속성 중복 등의 오류만 필터링 해서 표시합니다. XHTML에서 script 태그 내의 소스 코드가 CDATA 섹션 처리 되지 않는 등의 경우 validator가 오작동하여 오류 결과가 잘못 나오는 경우도 있으니 참고하시기 바랍니다. 이 항목은 OpenWAX에서 특별히 자랑할만한 항목인데요. 우선 접근성 오류에 해당하는 validation 결과만 필터링 해서 보여주는 것도 그렇지만, 로그인된 상태의 페이지의 마크업 오류를 검사하는 경우 validator 사이트를 이용할 경우 브라우저에서 로그인 후 소스 코드를 다운로드 받은 후에 다운받은 소스 코드를 validator 사이트에 업로드 하는 번거로운 과정을 거쳐야 검사가 가능한데, OpenWAX는 브라우저에서 로그인 한 후 검사를 하기만 하면 로그인 된 상태의 코드로 결과를 보여줍니다. OpenWAX를 사용하신다면 마크업 오류 방지 점검이 아주 간단해지는 것이죠!
  35. "마크업 오류 방지" 항목입니다. 페이지와 프레임의 소스 코드를 가지고 validation 검사를 한 후 품질마크에서 다루는 태그의 중첩 오류, 속성 중복 등의 오류만 필터링 해서 표시합니다. XHTML에서 script 태그 내의 소스 코드가 CDATA 섹션 처리 되지 않는 등의 경우 validator가 오작동하여 오류 결과가 잘못 나오는 경우도 있으니 참고하시기 바랍니다. 이 항목은 OpenWAX에서 특별히 자랑할만한 항목인데요. 우선 접근성 오류에 해당하는 validation 결과만 필터링 해서 보여주는 것도 그렇지만, 로그인된 상태의 페이지의 마크업 오류를 검사하는 경우 validator 사이트를 이용할 경우 브라우저에서 로그인 후 소스 코드를 다운로드 받은 후에 다운받은 소스 코드를 validator 사이트에 업로드 하는 번거로운 과정을 거쳐야 검사가 가능한데, OpenWAX는 브라우저에서 로그인 한 후 검사를 하기만 하면 로그인 된 상태의 코드로 결과를 보여줍니다. OpenWAX를 사용하신다면 마크업 오류 방지 점검이 아주 간단해지는 것이죠!
  36. 지금까지 OpenWAX의 각 검사항목을 하나 하나 살펴보았습니다. 중간중간 느끼셨겠지만 기능이 조금 어설픈 것도 있고 잘 동작이 안되는 것도 있고 그렇습니다. 이것들은 앞으로 보완해야 할 과제라고 생각하고요. WAI-ARIA에서 aria-hidden 속성을 써서 스크린리더에서 읽히지 않게 만든 요소를 결과에서 제거하거나 aria-labelledby 속성으로 해당 요소에 대한 설명을 제공하는 경우를 평가 결과에 반영하는 등 WAI-ARIA에 대한 지원도 추가할 계획을 가지고 있습니다. 이용 가이드를 보완하거나 더 쓰기 쉽게 수정하는 것 등 그 외에도 할 일은 많은 것 같아요.
  37. OpenWAX는 오픈 소스입니다. 소스 코드는 github에 모두 공개되어 있고요. 누구나 개발에 참여하실 수 있다는 것이죠. 직접 소스 코드 개발이 어려우신 분들도 각 항목의 평가 방법을 개선할 아이디어를 OpenWAX 공식 사이트의 댓글이나 github의 이슈로 등록해주시는 방법으로도 기여해주실 수 있습니다. 저한테 개인적으로 귀띔해주셔도 됩니다.
  38. OpenWAX는 오픈 소스입니다. 소스 코드는 github에 모두 공개되어 있고요. 누구나 개발에 참여하실 수 있다는 것이죠. 직접 소스 코드 개발이 어려우신 분들도 각 항목의 평가 방법을 개선할 아이디어를 OpenWAX 공식 사이트의 댓글이나 github의 이슈로 등록해주시는 방법으로도 기여해주실 수 있습니다. 저한테 개인적으로 귀띔해주셔도 됩니다.
  39. 감사합니다.