<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>겨미♡웹 &#187; 웹 접근성</title>
	<atom:link href="http://miya.pe.kr/category/web_accessibility/feed/" rel="self" type="application/rss+xml" />
	<link>http://miya.pe.kr</link>
	<description>웹 클라이언트 사이드 - UI 그리고 마크업.</description>
	<lastBuildDate>Mon, 26 Jul 2010 01:01:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>KWAG 12번째 모임 발표자료: WAI-ARIA in Real World</title>
		<link>http://miya.pe.kr/2010/07/17/kwag-12%eb%b2%88%ec%a7%b8-%eb%aa%a8%ec%9e%84-%eb%b0%9c%ed%91%9c%ec%9e%90%eb%a3%8c-wai-aria-in-real-world/</link>
		<comments>http://miya.pe.kr/2010/07/17/kwag-12%eb%b2%88%ec%a7%b8-%eb%aa%a8%ec%9e%84-%eb%b0%9c%ed%91%9c%ec%9e%90%eb%a3%8c-wai-aria-in-real-world/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 14:05:25 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[웹 접근성]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=122</guid>
		<description><![CDATA[KWAG 12번째 모임 발표자료 WAI-ARIA in Real World(on slideshare.net)입니다. 첫 발표라 긴장되고 어색했다는 느낌이 드네요. 죄송해요. ㅠ_ㅠ 발표에서 빼먹었던 내용들 이렇게 큰 모임에서의 발표는 처음이었던 관계로 긴장이 되어 준비했던 것들을 다 전달해드리지 못했습니다. 아쉬운 마음 글로나마 보충해봅니다. 참가하셨던 분들 중에 몇 분이나 보실지는 모르겠지만 도움이 되셨으면 좋겠네요. 브라우저별 ARIA 지원표에서&#8230; 프리젠테이션 10번 슬라이드의 내용입니다. 브라우저별 [...]]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_4777112"><object id="__sse4777112" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wai-ariainrealworld-100717085800-phpapp02&#038;stripped_title=wai-aria-in-real-world" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4777112" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wai-ariainrealworld-100717085800-phpapp02&#038;stripped_title=wai-aria-in-real-world" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p><a href="http://www.slideshare.net/mctenshi/wai-aria-in-real-world">KWAG 12번째 모임 발표자료 <abbr title="Web Accessibility Initiative-Accessibility Rich Internet Application">WAI-ARIA</abbr> in Real World(on slideshare.net)</a>입니다.</p>
<p>첫 발표라 긴장되고 어색했다는 느낌이 드네요. 죄송해요. ㅠ_ㅠ</p>
<h2>발표에서 빼먹었던 내용들</h2>
<p>이렇게 큰 모임에서의 발표는 처음이었던 관계로 긴장이 되어 준비했던 것들을 다 전달해드리지 못했습니다. 아쉬운 마음 글로나마 보충해봅니다. 참가하셨던 분들 중에 몇 분이나 보실지는 모르겠지만 도움이 되셨으면 좋겠네요.</p>
<h3>브라우저별 ARIA 지원표에서&hellip;</h3>
<p>프리젠테이션 10번 슬라이드의 내용입니다. <a href="http://www.paciellogroup.com/blog/?p=474">브라우저별 ARIA 지원표</a>의 마지막 업데이트는 2009년 9월 23일이었고 1년 가까이 지난 관계로 더욱 향상되었을 것입니다. (모든 브라우저들이 적극 ARIA 지원의사를 밝혔으니까요.) 지원표는 Windows Vista의 <a href="http://en.wikipedia.org/wiki/Microsoft_Active_Accessibility"><abbr title="Microsoft Active Accessibility">MSAA</abbr></a> role에 대한 지원 정도를 나타냅니다.</p>
<h3>Widget Roles의 구현은 자바스크립트로만!</h3>
<p>프리젠테이션 17번부터 시작되는 슬라이드의 내용입니다. <a href="http://www.w3.org/TR/wai-aria/roles#tab">Tab</a> 같은 <a href="http://www.w3.org/TR/wai-aria/roles#widget_roles">Widget Role</a>은 자바스크립트가 비활성화된 경우 선형화된 컨텐츠로 표시되도록 Progressive Enhancement 방식으로 개발하시죠? 따라서 자바스크립트가 비활성화된 경우는 Tab도 일반 컨텐츠이기 때문에 Widget Role은 자바스크립트로 구현합니다. role attribute나 aria-* attribute를 자바스크립트에서 페이지가 로딩된 즉시 부여한다는 이야기입니다.</p>
<p>다만, <a href="http://www.w3.org/TR/wai-aria/roles#landmark_roles">Landmark Role</a>은 정적인 문서의 영역을 표시해주는 역할을 하기 때문에 HTML에 직접 attribute로 삽입합니다.</p>
<h3>Widget Role의 개발 시 추가 참고 문서</h3>
<p>Widget Role 개발 시 보여드린 각 Role별 스펙에 추가로 <a href="http://www.w3.org/TR/wai-aria-practices/">Authoring Practices 스펙</a>의 <a href="http://www.w3.org/TR/wai-aria-practices/#aria_ex">각 Role별 interaction 구현 방법</a>을 참고하셔야 합니다. 원래 각 Role별 스펙에서 각 Role별 interaction 구현 방법으로 링크가 걸려있어야 할 것 같은데 아직 스펙의 링크들이 정돈되지 않아보이네요.</p>
<h2>참고 링크</h2>
<ul>
<li><a href="http://www.paciellogroup.com/blog/?p=474">The Paciello Group Blog: ARIA role support: how the Windows browsers stack up &#8211; Update</a>: 브라우저별 ARIA 스펙 준수 테스트 결과 (Windows Vista MSAA 기준)</li>
<li><a href="http://googlereader.blogspot.com/2008/03/reader-and-aria-new-way-to-read.html">Official Google Reader Blog: Reader and ARIA: A new way to read</a>: 구글 리더 제작팀 블로그의 ARIA 지원 알림</li>
<li><a href="http://www.w3.org/TR/wai-aria/roles#landmark_roles">The Roles Model | Accessible Rich Internet Applications (WAI-ARIA) 1.0 &raquo; Landmark Roles</a>: 문서의 내비게이션, 메인 영역 지정들을 위한 Landmark Roles 스펙</li>
<li><a href="http://www.w3.org/TR/wai-aria/roles#widget_roles">The Roles Model | Accessible Rich Internet Applications (WAI-ARIA) 1.0 &raquo; Widget Roles</a>: 탭, 다이얼로그 등의 RIA(리치 인터넷 어플리케이션) 위젯 접근성을 위한 Widget Roles 스펙</li>
<li><a href="http://www.w3.org/TR/wai-aria/roles#tab">The Roles Model | Accessible Rich Internet Applications (WAI-ARIA) 1.0 &raquo; tab (role)</a>: Widget Roles의 하나인 Tab Role 스펙</li>
<li><a href="http://www.paciellogroup.com/blog/?p=313">The Paciello Group Blog: WAI-ARIA Implementation in JavaScript UI Libraries &#8211; updated</a>: WAI-ARIA가 구현된 자바스크립트 라이브러리 목록</li>
<li><a href="http://dev.w3.org/html5/spec-author-view/content-models.html#annotations-for-assistive-technology-products-aria">3.2.5 Content models &mdash; HTML5 (Edition for Web Authors) &raquo; 3.2.6 Annotations for assistive technology products (ARIA)</a>: HTML 5 스펙의 ARIA에 대한 설명</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2010/07/17/kwag-12%eb%b2%88%ec%a7%b8-%eb%aa%a8%ec%9e%84-%eb%b0%9c%ed%91%9c%ec%9e%90%eb%a3%8c-wai-aria-in-real-world/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>오페라10, 웹 폰트 지원</title>
		<link>http://miya.pe.kr/2008/12/07/%ec%98%a4%ed%8e%98%eb%9d%bc10-%ec%9b%b9-%ed%8f%b0%ed%8a%b8-%ec%a7%80%ec%9b%90/</link>
		<comments>http://miya.pe.kr/2008/12/07/%ec%98%a4%ed%8e%98%eb%9d%bc10-%ec%9b%b9-%ed%8f%b0%ed%8a%b8-%ec%a7%80%ec%9b%90/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 13:21:42 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[잡담]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webfonts]]></category>
		<category><![CDATA[오페라]]></category>
		<category><![CDATA[웹폰트]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=104</guid>
		<description><![CDATA[CSS Zen Garden 웹 폰트 버전, 잘 나와요! ㅋ 오페라10 알파 버전이 공개되었습니다. 다양한 기능과 속도 향상과 더불어 웹 폰트도 지원하는군요. 파이어폭스 3.1도 웹 폰트를 지원하니 이제 모든 주요 브라우저(IE와 사파리 포함)가 웹 폰트를 지원하게 되었네요. EOT냐 TTF냐 하는 이슈가 있긴 합니다만, Ajax 등장시절 구글 지도가 그랬던 것처럼 Best Case가 나오면 붐이 일 수도 있지 [...]]]></description>
			<content:encoded><![CDATA[<p class="captionwithsshot"><a href="http://www.alistapart.com/d/cssatten/nels.html"><img alt="CSS Zen Garden 웹 폰트 적용 버전을 오페라10에서 본 스크린샷!" src="/images/2008/webfont.png" /></a><br /><a href="http://www.alistapart.com/articles/cssatten">CSS Zen Garden 웹 폰트 버전</a>, 잘 나와요! ㅋ</p>

<p><a href="http://hyeonseok.com/soojung/browser/2008/12/06/498.html">오페라10 알파 버전</a>이 공개되었습니다. 다양한 기능과 속도 향상과 더불어 <a href="http://www.webfonts.info">웹 폰트</a>도 <a href="http://lists.w3.org/Archives/Public/www-style/2008Dec/0044.html" title="오페라10의 웹 폰트 지원">지원</a>하는군요. <a href="http://miya.pe.kr/archives/83">파이어폭스 3.1</a>도 웹 폰트를 지원하니 이제 모든 주요 브라우저(IE와 사파리 포함)가 웹 폰트를 지원하게 되었네요.</p>

<p><abbr title="Embedded OpenType">EOT</abbr>냐 <abbr title="TrueType Font">TTF</abbr>냐 하는 이슈가 있긴 합니다만, Ajax 등장시절 <a href="http://maps.google.com">구글 지도</a>가 그랬던 것처럼 Best Case가 나오면 붐이 일 수도 있지 않을까 싶어요.</p>

<h3>관련 읽을거리들</h3>
<ul>
<li><a href="http://hyeonseok.com/soojung/browser/2008/12/06/498.html">오페라10 알파 버전 공개</a></li>
<li><a href="http://www.webfonts.info">Webfonts.info</a></li>
<li><a href="http://www.w3.org/Fonts/Misc/eot-report-2008">For &#038; against standardizing font embedding</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/12/07/%ec%98%a4%ed%8e%98%eb%9d%bc10-%ec%9b%b9-%ed%8f%b0%ed%8a%b8-%ec%a7%80%ec%9b%90/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>“Humane Interface” 함께 읽기 시작.</title>
		<link>http://miya.pe.kr/2008/11/20/%e2%80%9chumane-interface%e2%80%9d-%ed%95%a8%ea%bb%98-%ec%9d%bd%ea%b8%b0-%ec%8b%9c%ec%9e%91/</link>
		<comments>http://miya.pe.kr/2008/11/20/%e2%80%9chumane-interface%e2%80%9d-%ed%95%a8%ea%bb%98-%ec%9d%bd%ea%b8%b0-%ec%8b%9c%ec%9e%91/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 11:08:12 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=102</guid>
		<description><![CDATA[우리는 자신의 전자 시종에게 억압당하고 있다. 이 책을 우리의 해방을 위해 바친다. 사내의 동료들(웹 클라이언트 개발자들)과 Humane Interface (인간 중심 인터페이스)를 읽기 시작했습니다. 인간-기계 사이의 인터페이스는 무엇보다 인간이 사용하기 편해야한다.라고 이야기하는 이 책은 우리가 일상적으로 사용하고 있는 기계들에 대하여 알고 있는 불편한 점이나 혹은 익숙해져 불편한지 조차 모르는 것들을 끄집어내고 인간중심으로 바꾸어가는 방법과 그러기 위해 [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p>우리는 자신의 전자 시종에게 억압당하고 있다.</p>
<p>이 책을 우리의 해방을 위해 바친다.</p>
</blockquote>
<p>사내의 동료들(웹 클라이언트 개발자들)과 <a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8970591796"><q>Humane Interface (인간 중심 인터페이스)</q></a>를 읽기 시작했습니다. <q>인간-기계 사이의 인터페이스는 무엇보다 인간이 사용하기 편해야한다.</q>라고 이야기하는 이 책은 우리가 일상적으로 사용하고 있는 기계들에 대하여 알고 있는 불편한 점이나 혹은 익숙해져 불편한지 조차 모르는 것들을 끄집어내고 인간중심으로 바꾸어가는 방법과 그러기 위해 인터페이스를 담당하는 사람들이 해야할 것들에 대해 얘기하고 있습니다.</p>

<p>뭐 아직 1장만 읽었을 뿐이라 더 자세히 설명드리기는 부족하네요. ㅎ 아무튼 매우 재미있는 시간들이 될 것 같습니다. 아, 혹시 다른 분들과 책을 함께 읽어보고 있는 분들은 <a href="http://blog.openmaru.com/265">오픈마루 개발자 권남씨의 스터디하는 법</a>을 참고해보세요. 저희도 비슷하게 진행하고 있습니다.</p>

<p>그리고 첫 시간에 생각나는 게 있어 하나 적어봅니다.</p>

<blockquote><p>은행 자동 입출금기(<abbr title="Automated Teller Machine">ATM</abbr>)에서 출금이 카드 인식, 비밀번호 입력, 출금 금액의 순서로 진행되잖아요?</p>
<p>그런데 제가 비밀번호를 입력했는데 화면이 그대로여서 비밀번호 끝자리 1자리를 빼먹었나 싶어 마지막 1자리를 누르려는데 누르기 직전에 화면이 바뀌어서 출금 금액 중에 제일 큰 70만원을 선택해버렸어요. 그랬더니 이 기계가 바로 그냥 70만원을 주더라고요.</p>
</blockquote>

<p>책 읽기 중 어떤 분의 경험담을 들은 것인데 요는 비밀번호 입력 후 입력이 잘 되었고 다음 단계로 진행중이라는 피드백이 적절하게 제공되지 않은 것이다. 그런데 요즘 웹 사이트들을 돌아다니다 보면 이와 같은 피드백이 상당히 불편하다.</p>

<p>웹에서 표현을 담당하는 CSS에는 사용자의 동작에 대한 여러가지 피드백을 제공할 수 있는 기능이 있다. 바로 <a href="http://www.w3.org/TR/CSS21/selector.html#dynamic-pseudo-classes">동적 가상 클래스(dynamic pseudo class)</a>인데 그 종류에는 link, visited, hover, active, focus가 있다.</p>

<p>active와 같은 경우에는 요즘 인터넷 회선 속도가 너무 빨라져 거의 사용되지 않고 있는지 모르겠지만 누구나 게시판 등의 폼 전송 시 진행이 되지 않는 것 같아 전송 버튼을 여러번 클릭해본 경험이 있을 것이다. 물론 페이지가 이동되면서 브라우저 자체적인 피드백이 제공되기는 하지만 Ajax 등의 <abbr title="Rich Internet Application">RIA</abbr>라면 또 얘기가 달라진다.</p>

<p>나머지 경우들에 대해서도 상당히 간과되거나 미적 요소 정도로 치부되는 경향이 있는 듯 하다. 심지어 focus 되었을 때 브라우저에서 기본적으로 제공되는 테두리 점선이 이쁘지 않다는 이유만으로 없애버리는 경우도 있고…</p>

<p>얘기가 딴데로 새고 반말, 존대말 섞어가며 저부터 이 글을 읽는 분들께 혼란을 드린 듯 합니다. 죄송합니다. (__)</p>

<p>여하튼 책 읽기 들어가는 마당에 많은 것을 느꼈는데 중요한 건 최소한 직접 인간이 사용하게 될 무언가를 만드는 사람으로써 이 분야에 대한 공부는 생각보다 훨씬 중요하다는 겁니다. :)</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/11/20/%e2%80%9chumane-interface%e2%80%9d-%ed%95%a8%ea%bb%98-%ec%9d%bd%ea%b8%b0-%ec%8b%9c%ec%9e%91/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>접근성을 해치지 않는 자바스크립트의 사용, 그 다음엔?</title>
		<link>http://miya.pe.kr/2008/11/10/%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%ed%95%b4%ec%b9%98%ec%a7%80-%ec%95%8a%eb%8a%94-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%82%ac%ec%9a%a9-%ea%b7%b8-%eb%8b%a4%ec%9d%8c/</link>
		<comments>http://miya.pe.kr/2008/11/10/%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%ed%95%b4%ec%b9%98%ec%a7%80-%ec%95%8a%eb%8a%94-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%82%ac%ec%9a%a9-%ea%b7%b8-%eb%8b%a4%ec%9d%8c/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 14:16:55 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[ARIA]]></category>
		<category><![CDATA[WAI-ARIA]]></category>
		<category><![CDATA[Web Accessibility]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=97</guid>
		<description><![CDATA[접근성을 해치지 않는 자바스크립트의 사용 신현석님의 접근성을 해치지 않는 자바스크립트의 사용이라는 글을 읽어보셨는지요? 혹시 어렵고 복잡하다고 생각하실지 모르나 자바스크립트 기술 위에 HTML 표준에 대한 이해가 수반된다면 크게 복잡한 과정이 아닙니다. 웹 사이트 개발에 들어가기 앞서 위의 과정을 이해하고 있다면 접근성을 해치면서(?) 사용하는 자바스크립트와 같은 비용으로 자바스크립트가 불가능한 환경의 접근성, 검색엔진 최적화(SEO) 등의 이득을 챙길 수 [...]]]></description>
			<content:encoded><![CDATA[<h3>접근성을 해치지 않는 자바스크립트의 사용</h3>

<p>신현석님의 <a href="http://hyeonseok.com/docs/accessible-javascript/">접근성을 해치지 않는 자바스크립트의 사용</a>이라는 글을 읽어보셨는지요? 혹시 어렵고 복잡하다고 생각하실지 모르나 자바스크립트 기술 위에 HTML 표준에 대한 이해가 수반된다면 크게 복잡한 과정이 아닙니다. 웹 사이트 개발에 들어가기 앞서 위의 과정을 이해하고 있다면 접근성을 해치면서(?) 사용하는 자바스크립트와 같은 비용으로 자바스크립트가 불가능한 환경의 접근성, 검색엔진 최적화(<abbr title="Search Engine Optimization">SEO</abbr>) 등의 이득을 챙길 수 있습니다. 접근성을 보장하는 것이 그렇지 않은 것에 비해 추가비용을 필요로 하는 것은 사실이지만 그 추가비용 안에 위의 언급한 이득은 포함되어 있지 않습니다. 즉, 위의 이득들은 <strong>꽁짜</strong>란 얘기죠. ㅋ 실제로 <a href="http://me2day.net">미투데이</a>라는 서비스의 경우 자바스크립트를 제거한 상태에서도 정확하게 원하는 기능을 사용할 수 있고, 자바스크립트가 이 기능들을 좀 더 편하고 신속하게 이용할 수 있는 보조장치로 쓰인 모습을 볼 수 있습니다.</p>

<h3>그 다음엔?</h3>

<p>자… 그럼 이렇게 하면 끝일까요? 사실 아닙니다. 그 이유는 말빨이 부족한 제가 설명하는 대신 유명한 웹 접근성 관련 블로그인 <a href="http://www.456bereastreet.com">456 Berea Street</a>의 Roger Johansson옹의 글 <a href="http://www.456bereastreet.com/archive/200811/reading_up_on_wai-aria/">Reading up on <abbr title="Web Accessibility Initiative-Accessible Rich Internet Applications">WAI-ARIA</abbr></a>에서 따왔습니다.</p>

<blockquote>

<div xml:lang="en" lang="en">
<p>One of the more problematic areas of web accessibility is how to handle the custom widgets and dynamic changes to content used in most web applications and on many content-based websites.</p>
<p>Using JavaScript to add custom behaviour and update content can cause problems for people who rely on assistive technology (AT) such as screen readers. The problems often consist of the AT not being aware that content on the page has changed, the user not noticing that something has changed, or the user being aware that something changed but not what.</p>
</div>

<div title="허접 번역본;">
<p>웹 접근성에서 상당히 골칫거리인것들 중에 하나가 커스텀 위젯이나 대부분의 웹 어플리케이션이나 많은 컨텐츠 중심 웹 사이트들에서 사용된 컨텐츠의 동적인 변경을 어떻게 다루느냐하는 것이다.</p>
<p>자바스크립트를 사용하여 특정 동작을 추가하고 컨텐츠를 갱신하는 것은 스크린리더와 같은 보조기기에 의지하고 있는 사람들에게 문제를 일으킬 수 있다. 그 문제란 대개 보조기기가 페이지의 컨텐츠가 변경된 것을 감지하지 못하여 사용자가 무엇인가 바뀌었다는 것을 알지 못하거나, 혹은 사용자가 무엇인가 바뀌었다는 것은 알지만 그게 무엇인지는 모르는 문제를 가리킨다.</p>
</div>
</blockquote>

<p>그래서 나온게 <a href="http://www.w3.org/WAI/intro/aria"><abbr title="Web Accessibility Initiative-Accessible Rich Internet Applications">WAI-ARIA</abbr></a>입니다. 자, 그러면 당장 적용을 시키면 되나? 그렇습니…다라고 말씀을 드려야 하지만 좀 상황이 편하지만은 않습니다. WAI-ARIA라는 스펙 자체가 초안(Working Draft) 상태라 아직 표준으로 인정할 수 없는 상태이고 국내에서 유명한 스크린리더인 <a href="http://www.xvtech.com/xvision_renew/product/product_02.php">센스리더</a>는 WAI-ARIA의 W자도 찾아볼 수 없습니다. 구현이 전혀 안되어 있다는 얘기죠.</p>

<p class="captionwithsshot"><img alt="" src="/images/2008/accessibility/googlereader.gif" height="400" /><br />
구글리더는 ARIA 기능을 사용할 수 있는 감춰진 링크를 제공하고 있다.</p>

<p><q>보조기기들도 지원안하는 WAI-ARIA인지 뭔지 적용하나 마나 쓸모없지 않나?</q>라는 질문을 하실 수 있습니다. 마찬가지로 센스리더 등의 보조기기 제작사에서는 <q>구현된 사이트도 없는데 WAI-ARIA인지 뭔지 적용하나 마나 쓸모없지 않나?</q>라는 질문을 할 수 있고요. -_-;;;</p>

<p>둘 중 누가 먼저라는 걸 서로 주장하는 것도 웃깁니다. 오히려 서로 시급히 도입해야 할 판국이죠. 그렇지 않습니까? ^^</p>

<h3>지금 당장은?</h3>

<p>우여곡절 끝에 접근성을 해치치 않는 자바스크립트를 사용하고 그 위에 WAI-ARIA까지 적용했다고 합시다. 그런데 보조기기들은 아직이라면? 답은 의외로 간단합니다. 보조기기 사용자들이 자바스크립트를 꺼둔 상태로 사이트를 작동할 수 있는 기능(문서 시작점에 이 기능에 대한 링크를 제공한다던지…)을 주면 됩니다. :)</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/11/10/%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%ed%95%b4%ec%b9%98%ec%a7%80-%ec%95%8a%eb%8a%94-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%82%ac%ec%9a%a9-%ea%b7%b8-%eb%8b%a4%ec%9d%8c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>정보로서가 아닌 정보를 꾸며주기 위해 사용하는 &lt;img&gt; 태그, 그리고 이미지 대치법(Image Replacement)</title>
		<link>http://miya.pe.kr/2008/04/22/%ec%a0%95%eb%b3%b4%eb%a1%9c%ec%84%9c%ea%b0%80-%ec%95%84%eb%8b%8c-%ec%a0%95%eb%b3%b4%eb%a5%bc-%ea%be%b8%eb%a9%b0%ec%a3%bc%ea%b8%b0-%ec%9c%84%ed%95%b4-%ec%82%ac%ec%9a%a9%ed%95%98%eb%8a%94-img/</link>
		<comments>http://miya.pe.kr/2008/04/22/%ec%a0%95%eb%b3%b4%eb%a1%9c%ec%84%9c%ea%b0%80-%ec%95%84%eb%8b%8c-%ec%a0%95%eb%b3%b4%eb%a5%bc-%ea%be%b8%eb%a9%b0%ec%a3%bc%ea%b8%b0-%ec%9c%84%ed%95%b4-%ec%82%ac%ec%9a%a9%ed%95%98%eb%8a%94-img/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 17:34:43 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Image Replacement]]></category>
		<category><![CDATA[img]]></category>
		<category><![CDATA[마크업]]></category>
		<category><![CDATA[이미지]]></category>
		<category><![CDATA[이미지 대치법]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=77</guid>
		<description><![CDATA[현 시대의 CSS로는 마크업의 무결성을 보장하면서 원하는 표현을 충분히 할 수 없다. 그 대표적인 예가 폰트와 배경이미지이다. 그 중에서도 폰트와 같은 경우는 기본 텍스트만으로는 원하는 결과물을 얻기가 힘들다. 이럴 때 우리가 가장 많이 사용하는 방식이 &#60;img&#62; 태그 혹은 이미지 대치법(Image Replacement)이다. 정보를 꾸며주기 위한 &#60;img&#62; 태그 &#60;img&#62; 태그는 사전적으로는 정보를 지닌 &#8211; 의미 있는 &#8211; [...]]]></description>
			<content:encoded><![CDATA[
<p>현 시대의 <abbr title="Cascading Style Sheet">CSS</abbr>로는 마크업의 무결성을 보장하면서 원하는 표현을 충분히 할 수 없다. 그 대표적인 예가 <a href="http://miya.pe.kr/archives/74">폰트</a>와 <a href="http://miya.pe.kr/archives/72">배경이미지</a>이다. 그 중에서도 폰트와 같은 경우는 기본 텍스트만으로는 원하는 결과물을 얻기가 힘들다. 이럴 때 우리가 가장 많이 사용하는 방식이 <code class="html">&lt;img&gt;</code> 태그 혹은 이미지 대치법(Image Replacement)이다.</p>

<h3>정보를 꾸며주기 위한 <code class="html">&lt;img&gt;</code> 태그</h3>

<p><code class="html">&lt;img&gt;</code> 태그는 사전적으로는 정보를 지닌 &#8211; 의미 있는 &#8211; 시각 요소를 문서에 삽입하기 위한 태그이지만, 앞서 언급한 표현의 제약으로 인해 폰트 등을 원하는 대로 표현하기 위한 용도로 사용하기도 하다. 예전부터 &#8211; 대다수의 웹 제작자들이 마크업을 표현을 위한 용도로 사용하던 시절부터 &#8211; 국내의 거의 모든 사이트들이 사용하는 방법이기도 하다.</p>

<h4>문제점</h4>

<p>우선 <strong><code class="html">&lt;img&gt;</code> 태그의 남용이 마크업의 의미를 떨어뜨린다</strong>. 단순 텍스트와 <code class="html">&lt;img&gt;</code> 태그는 기본적으로 의미하는 바가 다르다. <strong>이미지 검색엔진의 결과물로 나타나는 수많은 텍스트 꾸밈용 이미지들을 보면 <code class="html">&lt;img&gt;</code> 태그의 남용이 잘못된 마크업이라는 생각을 할 수 있다</strong>.</p>

<p>또, 남용된 <code class="html">&lt;img&gt;</code> 태그는 <strong>구조와 표현의 분리라는 CSS의 목적을 달성하는 데 장애물이 된다</strong>. 마크업에 박혀있는 특정 시각 디자인 결과물을 위한 <code class="html">&lt;img&gt;</code> 태그들은 다양한 표현의 걸림돌이다. <code class="html">&lt;img&gt;</code> 태그가 남용된 사이트에서 프린트를 위한 CSS를 제작한다면 그 결과물은 어쩔 수 없이 스크린의 그것에서 크게 달라질 수 없을 것이다. 스크린 디자인을 위해 사용된 <code class="html">&lt;img&gt;</code> 태그의 모양새는 바꾸기가 어렵기 때문이다.</p>

<h3>CSS를 이용한 이미지 대치법(Image Replacement)</h3>

<h4>문제점</h4>

<p>앞서 언급한것처럼 <code class="html">&lt;img&gt;</code> 태그는 많은 문제점이 있지만 CSS를 이용한 이미지 대치법 역시 많은 문제를 가지고 있다. 가장 대표적으로 대다수의 이미지 대치법이 텍스트를 숨기거나(<code class="css">display: none;</code>) 화면 밖으로 위치시키는 방법(<code class="css">text-indent: -999em;</code>)을 사용하기 때문에 <strong>CSS 활성화·이미지 비활성화 상태에서 화면 상에 아무것도 출력하지 못하며</strong> 이 방법을 프린트용 CSS에 동일하게 적용하였을 때 보통의 웹 브라우저들이 기본적으로 배경 이미지를 출력하지 않기 때문에 <strong>백지 상태의 인쇄물을 보게되는 경우가 생긴다.</strong> (<code class="html">&lt;img&gt;</code> 태그 사용시에는 사용자가 의도하지 않은 사이에 프린터의 잉크나 토너가 낭비된다!)</p>

<h4>약간의 해결책</h4>

<p>CSS 활성화·이미지 비활성화 상태의 경우 <a href="http://www.mezzoblue.com/tests/revised-image-replacement/#gilderlevin">Gilder/Levin의 방법</a>이나 <a href="http://www.ryznardesign.com/web_coding/image_replacement/index.html#glrj">Gilder Levin Ryznar Jacoubsen의 방법</a>을 통해 해결할 수 있다. 하지만 이 방법은 이미지 뒤에 가려진 텍스트가 표시될 수 있는 충분한 공간이 확보되지 않으면 무용지물이 될 수 있다. <a href="http://www.nmindplus.com/2006/09/24/z-index/">z-index를 이용한 이미지 대치법</a>도 하나의 방법인데 대치할 요소의 부모 요소에 배경색이 들어가있거나 한 경우에 문제가 생길 수 있다. 그리고 앞의 방법들과 마찬가지로 텍스트의 공간에 대한 문제가 있다. 그리고 이 모든 방법들은 <strong>의미없는 추가적인 마크업을 필요</strong>로 한다.</p>

<p>프린트 시의 문제는? 프린트용 CSS를 별도로 제작하면 바로 해결된다. 설마 로고와 메뉴가 덕지덕지 붙은 화면을 사용자에게 그대로 출력시키게 하는 것을 그냥 지켜보고 있다면 바로 당신이 관리하는 사이트에 프린트용 CSS를 추가하라.</p>

<h3>어떤 것을 선택하느냐?</h3>

<p><code class="html">&lt;img&gt;</code> 태그, 이미지 대치법(Image Replace). <strong>이 방법들 중 어떤 것도 완벽하지 않다</strong>. 다만 각 방법들이 서로 다른 문제를 가지고 있고 어떤 것을 선택하느냐에 앞서 이 방법들의 문제점들에 대해 이해한 후에 선택하는 것이 필요하다.</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/04/22/%ec%a0%95%eb%b3%b4%eb%a1%9c%ec%84%9c%ea%b0%80-%ec%95%84%eb%8b%8c-%ec%a0%95%eb%b3%b4%eb%a5%bc-%ea%be%b8%eb%a9%b0%ec%a3%bc%ea%b8%b0-%ec%9c%84%ed%95%b4-%ec%82%ac%ec%9a%a9%ed%95%98%eb%8a%94-img/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>여러 개의 제출 버튼을 가진 폼, &lt;button&gt; 태그도 사용할 수 있다!</title>
		<link>http://miya.pe.kr/2008/01/04/%ec%97%ac%eb%9f%ac-%ea%b0%9c%ec%9d%98-%ec%a0%9c%ec%b6%9c-%eb%b2%84%ed%8a%bc%ec%9d%84-%ea%b0%80%ec%a7%84-%ed%8f%bc-button-%ed%83%9c%ea%b7%b8%eb%8f%84-%ec%82%ac%ec%9a%a9%ed%95%a0-%ec%88%98/</link>
		<comments>http://miya.pe.kr/2008/01/04/%ec%97%ac%eb%9f%ac-%ea%b0%9c%ec%9d%98-%ec%a0%9c%ec%b6%9c-%eb%b2%84%ed%8a%bc%ec%9d%84-%ea%b0%80%ec%a7%84-%ed%8f%bc-button-%ed%83%9c%ea%b7%b8%eb%8f%84-%ec%82%ac%ec%9a%a9%ed%95%a0-%ec%88%98/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 01:08:50 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Markup]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/67</guid>
		<description><![CDATA[여러 개의 제출 버튼을 가진 폼의 접근성에 대하여 이야기를 하였었는데 결론은 &#60;input&#62; 태그가 제한적이나마 사용될 수 있다는 것이었다. 좀 더 풍부한 표현이 가능한 &#60;button&#62; 태그가 IE에서 버그를 가지고 있는 관계로 사용할 수 없다고 하였었는데 그게 어느정도 가능할 수 있다는 결론을 얻었다. 자바스크립트를 통한 IE의 &#60;button&#62; 태그 버그 극복 &#60;button&#62; 태그가 IE에서만 문제가 되고 있고 IE는 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.miya.pe.kr/archives/40">여러 개의 제출 버튼을 가진 폼의 접근성</a>에 대하여 이야기를 하였었는데 결론은 &lt;input&gt; 태그가 제한적이나마 사용될 수 있다는 것이었다. 좀 더 풍부한 표현이 가능한 &lt;button&gt; 태그가 IE에서 버그를 가지고 있는 관계로 사용할 수 없다고 하였었는데 그게 어느정도 가능할 수 있다는 결론을 얻었다.</p>
<h3>자바스크립트를 통한 IE의 &lt;button&gt; 태그 버그 극복</h3>
<p>&lt;button&gt; 태그가 IE에서만 문제가 되고 있고 IE는 특별한 조치 없이는 자바스크립트를 기본적으로 사용하기 때문에 자바스크립트를 통해 IE의 버그를 극복할 수 있다고 생각되었다. 그래서 찾아보니 <a href="http://www.kopz.org/public/documents/css/multiple_buttons_ie_workaround.html" hreflang="en" lang="en">Multiple Buttons IE Workaround</a>라는 글이 있었다. 이 글이 제시하는 방법은 버튼을 클릭할 때 value 속성(값)을 IE의 버그로 인한 값에서 정상적인 값으로 돌려주는 것이었는데 이것은 폼의 제출 시에는 정상적으로 작동할 수 있으나 <a href="/examples/ie-button-fix/kopz_example.php" title="kopz.org가 제시한 방식의 예제">onsubmit 이벤트에서 폼 제출을 중지하는 경우</a> 등의 상황에서 얘기치 않은 결과를 가져왔다.</p>
<h3>IE Button Fix</h3>
<p>그래서 위의 단점들을 해결하고 여전히 문제를 가지고 있던 IE5까지 해결한 <a href="/document/ie-button-fix">IE Button Fix</a>를 만들었다. 문제를 해결하면서 <a href="/document/ie-button-fix#restriction">새로운 제약사항</a>이 생겼는데 이는 사용시에 사용할 웹 사이트의 성격과 제약사항을 잘 파악하여 사용여부를 판단할 수 있을 것이다.</p>
<p><a href="http://particletree.com/features/rediscovering-the-button-element/">&lt;button&gt; 태그는 &lt;input&gt; 태그에 비해 많은 장점을 갖는다.</a> IE의 버그는 그 동안 이래저래 &lt;button&gt; 태그의 장점을 사용할 수 없도록 제한해왔지만 <a href="/document/ie-button-fix">IE Button Fix</a>가 이를 어느정도 보완해줄 수 있으리라 생각한다.</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/01/04/%ec%97%ac%eb%9f%ac-%ea%b0%9c%ec%9d%98-%ec%a0%9c%ec%b6%9c-%eb%b2%84%ed%8a%bc%ec%9d%84-%ea%b0%80%ec%a7%84-%ed%8f%bc-button-%ed%83%9c%ea%b7%b8%eb%8f%84-%ec%82%ac%ec%9a%a9%ed%95%a0-%ec%88%98/feed/</wfw:commentRss>
		<slash:comments>262</slash:comments>
		</item>
		<item>
		<title>Ajax의 접근성 보장</title>
		<link>http://miya.pe.kr/2007/11/28/ajax%ec%9d%98-%ec%a0%91%ea%b7%bc%ec%84%b1-%eb%b3%b4%ec%9e%a5/</link>
		<comments>http://miya.pe.kr/2007/11/28/ajax%ec%9d%98-%ec%a0%91%ea%b7%bc%ec%84%b1-%eb%b3%b4%ec%9e%a5/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 07:59:36 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[웹 접근성]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/24</guid>
		<description><![CDATA[요즘 웹에는 접근성의 문제를 해결하지 못한 RIA, 즉 Ajax가 많이 쓰인다. 예를 들어 Drag &#38; Drop 기능을 웹 사이트에 붙인 경우 마우스를 사용할 수 없는 사용자나 스크린리더 사용자들에게 그것을 조작할 수 있게 하기는 힘이 든다. 웹 접근성 가이드라인과 Ajax KWCAG 1.0 에는 Flash나 동영상 등의 외부 플러그인에는 적절한 대체 컨텐츠를 제공하여야 한다는 내용이 담겨 있다. [...]]]></description>
			<content:encoded><![CDATA[<p>요즘 웹에는 접근성의 문제를 해결하지 못한 <abbr title="Rich Internet Application">RIA</abbr>, 즉 Ajax가 많이 쓰인다. 예를 들어 Drag &amp; Drop 기능을 웹 사이트에 붙인 경우 마우스를 사용할 수 없는 사용자나 스크린리더 사용자들에게 그것을 조작할 수 있게 하기는 힘이 든다.</p>
<h3>웹 접근성 가이드라인과 Ajax</h3>
<p><abbr title="Korean Web Content Accessibility Guidelines">KWCAG</abbr> 1.0 에는 Flash나 동영상 등의 외부 플러그인에는 적절한 대체 컨텐츠를 제공하여야 한다는 내용이 담겨 있다. 그와 더불어 자체적인 접근성(키보드 조작 가능)이 보장되어야 한다는 내용도 있다. 이는 Ajax 어플리케이션에도 동일하게 적용되는 내용이지만 Drag &amp; Drop이나 위지윅(wysiwig) 에디터 등 키보드 만으로 조작 가능하게 만들기도 불가능한 어플리케이션은 자체적인 접근성을 지니기가 힘들다.</p>
<h3>99% 부족한 접근성 보장</h3>
<p>앞서 언급한 Drag &amp; Drop이나 위지윅(wysiwig) 에디터 등의 접근성 문제를 해결하는 데에는 여러 가지 방법이 있을 수 있다. 사용성은 떨어지지만 키보드로 구현할 수 있으며 시각장애인을 위해 부가적인 설명을 달아줄 수 있다. 하지만 결과적으로 어떤 이들에게는 사용성의 증대의 좋은 결과를 가져다 준 기능이 어떤 이들에게는 사용성의 저하라는 결과를 가져다 주고 말게 된다. 다양한 환경을 고려하여야 사용성의 저하이지 현재 웹 상의 Ajax는 대부분 키보드만으로, 혹은 스크린리더 등으로 접근할 수 없다.</p>
<p>&quot;자바스크립트 언어로 구현된 Ajax 어플리케이션의 경우 &lt;noscript&gt; 태그를 통해 모든 기능을 구현해 주었다. 무엇이 문제냐?&quot; 하고 묻는다면 &quot;자바스크립트를 사용할 수 있는 경우라도 무조건 마우스를 사용할 수 있는 것이 아니다&quot;라고 얘기하겠다. &quot;자바스크립트 기능을 끄고 사용하면 되지 않느냐?&quot; 하고 묻는다면 &quot;IE6에서 자바스크립트 기능을 한 번 꺼보라&quot;고 얘기하겠다. 매일 인터넷을 이용하는 사람들조차 거의 자바스크립트 기능을 끄는 법을 알아내기가 쉽지 않다. 자바스크립트 기능을 끄는 법을 어플리케이션의 장치 의존적 특성과 함께 해당 어플리케이션이 담긴 페이지 내에서 설명한다면 어느 정도 접근성은 향상시킬 수 있다고 하겠으나, 브라우저의 설정 도구 깊숙히 숨어있는 옵션을 제어하기 위해 설명을 읽고 시간을 허비한다면 결코 접근성이 보장된 어플리케이션이라고 얘기할 수 없다.</p>
<h3>대체 기능의 제공</h3>
<p>내가 생각하는 최선(最善)은 대체 기능의 제공이다. Ajax 기능은 사용할 수 있지만 장치의 문제 상 단순히 HTML만으로 이루어진 페이지보다 접근성이나 사용성이 떨어지는 경우에는 해당 어플리케이션을 표시하기 전에 분명히 장치 의존적 특성을 설명하고 같은 기능을 다른 방법으로 &#8211; 단순한 HTML 등 &#8211; 수행할 수 있는 링크를 제공하여야겠다. Drag &amp; Drop 어플리케이션의 대체 기능을 제공한다면 화면의 모양은 다음과 같을 것이다.</p>
<p><img alt="대체 기능을 제공하는 HTML 마크업 예제" src="/images/2007/11/alt-function-example.gif" /></p>
<p>대체 기능 제공을 위하여 대체 기능을 사용할 수 있는 사용자의 범위를 인식하고 그 범위의 사용자들에게 명시적으로 대체 기능의 목적과 이용방법을 제공하여야 할 것이다. 자세한 설명을 별도의 설명 페이지를 통해 할 수 있지만 예제에 표시된 정도의 메시지는 기본적으로 포함되어야 한다. 어떤 사용자는 어플리케이션의 대략적인 성격과 이용가능여부를 다른 페이지를 보고 나서야 알 수 있다면 상당한 사용성의 침해를 받을 것이기 때문이다.</p>
<h3>Ajax를 이용할 수 있는 모든 장치를 지닌 사용자라도 무조건 배제할 수는 없다.</h3>
<p>대체 기능을 제공할 사용자 범위 산정에 있어 사용자의 이용 환경만을 생각하면 안된다. 예로 마우스 롤오버 시에 작은 이벤트로 또 다른 기능을 제공하는 경우라면 민첩하지 못한 사용자나 인터넷 초심자 &#8211; 노인, 어린이, 지체장애인 등 &#8211; 에게는 오히려 방해가 될 수 있는 것이 Ajax이다. 이런 사용자에게도 확실하게 어플리케이션의 성격과 이용 시에 야기될 수 있는 문제점들을 알리고 그 대안(대체 기능)을 제공하는 것이 진정한 Ajax의 접근성이라고 하겠다.</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/11/28/ajax%ec%9d%98-%ec%a0%91%ea%b7%bc%ec%84%b1-%eb%b3%b4%ec%9e%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>민간기업의 웹 접근성 모범사례(Best Practices) 세미나에 다녀오다.</title>
		<link>http://miya.pe.kr/2007/11/27/%eb%af%bc%ea%b0%84%ea%b8%b0%ec%97%85%ec%9d%98-%ec%9b%b9-%ec%a0%91%ea%b7%bc%ec%84%b1-%eb%aa%a8%eb%b2%94%ec%82%ac%eb%a1%80best-practices-%ec%84%b8%eb%af%b8%eb%82%98%ec%97%90-%eb%8b%a4%eb%85%80/</link>
		<comments>http://miya.pe.kr/2007/11/27/%eb%af%bc%ea%b0%84%ea%b8%b0%ec%97%85%ec%9d%98-%ec%9b%b9-%ec%a0%91%ea%b7%bc%ec%84%b1-%eb%aa%a8%eb%b2%94%ec%82%ac%eb%a1%80best-practices-%ec%84%b8%eb%af%b8%eb%82%98%ec%97%90-%eb%8b%a4%eb%85%80/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 11:09:30 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/23</guid>
		<description><![CDATA[오늘(2007년 11월 27일) 있었던 민간기업의 웹 접근성 모범사례(Best Practices) 세미나에 다녀왔다. 포털들의 웹 접근성 보장 노력을 보다. 포털들은 빠르게 바뀌어가고 있지는 않지만, 점진적으로 그리고 체계적으로 웹 접근성을 업무에 도입하고 있다. 예전에 만들었던 table 레이아웃을 하나 둘 씩 덜어내고 제대로 된 markup, 웹 표준 준수, 시각장애인들과의 교류를 통한 실제로 도움이 되는 웹 접근성 테스트 등을 진행하고 [...]]]></description>
			<content:encoded><![CDATA[<p>오늘(2007년 11월 27일) 있었던 <a href="http://iabf.or.kr/Seminar/SeminarView.asp?sSeq=74">민간기업의 웹 접근성 모범사례(Best Practices) 세미나</a>에 다녀왔다.</p>
<h3>포털들의 웹 접근성 보장 노력을 보다.</h3>
<p>포털들은 빠르게 바뀌어가고 있지는 않지만, 점진적으로 그리고 체계적으로 웹 접근성을 업무에 도입하고 있다. 예전에 만들었던 table 레이아웃을 하나 둘 씩 덜어내고 제대로 된 markup, 웹 표준 준수, 시각장애인들과의 교류를 통한 실제로 도움이 되는 웹 접근성 테스트 등을 진행하고 있다.</p>
<h3>Ajax 접근성의 가이드라인 부재</h3>
<p><abbr title="Rich Internet Application">RIA</abbr>의 편의성이라는 장점과 접근성의 보장이 힘들다는 단점을 언급한 섹션이 있었는데 결론이라고는 달랑 <q>well-made Javascript(혹은 Ajax)를 만들자.</q> 였다. 확실히 현재 국내 웹 시장에는 <abbr title="Asynchronous JavaScript and XML">AJAX</abbr>, Flash 등의 RIA에서의 접근성 보장에 대한 기준이 미흡하다. 장치(마우스 등) 의존적인 <abbr title="User Interface">UI</abbr>, 시각에 의존적인 UI 등 어떤 사용자에게는 도움이 되는 UI가 그 기능을 사용할 수 없는 사용자들을 위해서는 어떻게 설계되어야 하는지에 대한 것이 필요할 것이다.</p>
<h3>혼자서는 이룰 수 없는 웹 접근성</h3>
<p>슈퍼맨은 홀로 지구를 지켜 나아가지만, 슈퍼 웹 퍼블리셔는 혼자서는 아무것도 할 수 없다. 작게는 웹 사이트를 만드는 모든 사람들(기획자, 디자이너 등)에서부터 크게는 회사의 이익 추구의 최전선의 경영진, 그리고 지금 인터넷을 사용하는 모든 사람들의 인식이 확립되어야 한다. 웹 접근성은 특정 사람들(시각장애인 등)만을 위한 것임이 아님을, 설마 하고 접근성의 고려 없이 만든 조그마한 사이트도 누군가에게는 불편과 아픔을 가져다 준다는 사실을 알아야겠다.</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/11/27/%eb%af%bc%ea%b0%84%ea%b8%b0%ec%97%85%ec%9d%98-%ec%9b%b9-%ec%a0%91%ea%b7%bc%ec%84%b1-%eb%aa%a8%eb%b2%94%ec%82%ac%eb%a1%80best-practices-%ec%84%b8%eb%af%b8%eb%82%98%ec%97%90-%eb%8b%a4%eb%85%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>키보드 지원 슬라이더 &#8211; Accessible Unobtrusive Slider</title>
		<link>http://miya.pe.kr/2007/11/26/%ed%82%a4%eb%b3%b4%eb%93%9c-%ec%a7%80%ec%9b%90-%ec%8a%ac%eb%9d%bc%ec%9d%b4%eb%8d%94-accessible-unobtrusive-slider/</link>
		<comments>http://miya.pe.kr/2007/11/26/%ed%82%a4%eb%b3%b4%eb%93%9c-%ec%a7%80%ec%9b%90-%ec%8a%ac%eb%9d%bc%ec%9d%b4%eb%8d%94-accessible-unobtrusive-slider/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 04:18:18 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[Slider]]></category>
		<category><![CDATA[Unobtrusive Ajax]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/22</guid>
		<description><![CDATA[Brian McAllister의 Accessible Unobtrusive Slider를 소개한다. 키보드로 제어할 수 있는 슬라이더 제목에서도 알 수 있지만 Accessible Unobtrusive Slider는 키보드로 제어할 수 있는 슬라이더 라이브러리이다. 슬라이더 UI는 HTML5에서 지원 예정인데, 현재로서는 표시할 방법이 자바스크립트를 이용한 라이브러리를 통하는 수 밖에 없다. 그래서 많은 관련 라이브러리들이 공개되어 있는데 키보드 제어 가능한 라이브러리는 드문 편이다. 마우스 휠을 활용할 수 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.frequency-decoder.com/">Brian McAllister</a>의 <a href="http://www.frequency-decoder.com/demo/slider-revisited/">Accessible Unobtrusive Slider</a>를 소개한다.</p>
<h3>키보드로 제어할 수 있는 슬라이더</h3>
<p>제목에서도 알 수 있지만 Accessible Unobtrusive Slider는 키보드로 제어할 수 있는 슬라이더 라이브러리이다. <a href="http://www.whatwg.org/specs/web-forms/current-work/#datalist">슬라이더 UI는 HTML5에서 지원 예정</a>인데, 현재로서는 표시할 방법이 자바스크립트를 이용한 라이브러리를 통하는 수 밖에 없다. 그래서 <a href="http://ajaxrain.com/tagcloud.php">많은 관련 라이브러리들</a>이 공개되어 있는데 키보드 제어 가능한 라이브러리는 드문 편이다.</p>
<h3>마우스 휠을 활용할 수 있는 슬라이더</h3>
<p>Accessible Unobtrusive Slider는 <strong>마우스 휠을 통한 제어</strong>가 가능하다. 마우스 휠 제어는 상당히 편리한 기능인 것 같다. 현재 마우스 휠 방향과 슬라이드 되는 방향이 잘 맞지 않은 경우가 있어 불편한 느낌이 드는데 이는 어서 수정되었으면 하는 사항이다.</p>
<h3>스크린 리더를 사용하는 시각장애인에게는 불편함을 가중시키는 라이브러리</h3>
<p>마우스 사용자 뿐 아니라 키보드 사용자에게 까지도 멋지게 제어 가능한 라이브러리이지만 시각장애인에게는 오히려 방해요소가 되고 있다. 라이브러리가 슬라이더로 지정한 폼 컨트롤의 label을 가로채어 &lt;button&gt; 태그로 마크업된 슬라이더 UI에 배정하는데 label의 대상(for 속성)을 왜곡시키고 다른 속성(labelledby 속성)을 통해 슬라이더 UI와 label을 연결시켜주고 있다. &lt;button&gt; 태그에 title 속성을 통한 UI 사용법에 대한 간단한 설명을 넣거나 원래의 폼 컨트롤을 가리키는 label을 가공하지 말아야 할 것이다.</p>
<h3>단순히 시각적인 것 이상을 생각한 훌륭한 라이브러리</h3>
<p>Accessible Unobtrusive Slider는 시각적인 것 이상을 고려한 것만으로 의미있고 유용한 라이브러리이다. 위에 언급한 단점들을 보완할 수 있으면 모든 사용자에게 훌륭한 UI 개선 도구가 될 것이다.</p>

<p>덧) IE6에서 마우스를 갖다 대었을 때 많이 버벅댄다. 나만 그런가? 사용 전 충분한 테스트는 꼭! :)</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/11/26/%ed%82%a4%eb%b3%b4%eb%93%9c-%ec%a7%80%ec%9b%90-%ec%8a%ac%eb%9d%bc%ec%9d%b4%eb%8d%94-accessible-unobtrusive-slider/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>겸손한 자바스크립트의 기본</title>
		<link>http://miya.pe.kr/2007/11/25/%ea%b2%b8%ec%86%90%ed%95%9c-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ea%b8%b0%eb%b3%b8/</link>
		<comments>http://miya.pe.kr/2007/11/25/%ea%b2%b8%ec%86%90%ed%95%9c-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ea%b8%b0%eb%b3%b8/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 14:23:49 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[겸손한 자바스크립트]]></category>
		<category><![CDATA[마크업]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/21</guid>
		<description><![CDATA[겸손한 자바스크립트의 사전적인 의미는 문서(HTML)와 동작(자바스크립트)를 분리하는 것이지만, 그 이전에 기본은 자바스크립트를 사용하는 모든 경우에 대해 사용 가능한 경우와 가능하지 않은 경우를 염두하여 설계하는 것이다. 웹 페이지를 제작하면서 자바스크립트를 어떤 부분에 사용해야겠다라고 마음 먹으면 우리는 자바스크립트를 표시하는 &#60;script&#62; 태그를 쓴다. 앞서 얘기한 설계대로 &#60;script&#62; 태그의 사용 가능하지 않은 경우를 위해 &#60;noscript&#62; 태그를 쓸 수 있다. [...]]]></description>
			<content:encoded><![CDATA[<p>겸손한 자바스크립트의
    <ins datetime="2008-04-25T04:30:00+09:00">사전적인 의미는 문서(<abbr title="Hypertext Markup Language">HTML</abbr>)와 동작(자바스크립트)를
        분리하는 것이지만, 그 이전에</ins>
    기본은 <strong>자바스크립트를 사용하는 모든 경우에 대해 사용 가능한 경우와 가능하지 않은 경우를 염두하여 설계하는 것</strong>이다.</p>
<p>웹 페이지를 제작하면서 자바스크립트를 어떤 부분에 사용해야겠다라고 마음 먹으면
    우리는 자바스크립트를 표시하는 &lt;script&gt; 태그를 쓴다.
    앞서 얘기한 설계대로 &lt;script&gt; 태그의 사용 가능하지 않은 경우를 위해 &lt;noscript&gt; 태그를 쓸 수 있다.
    어플리케이션 레벨이 아닌 마크업이 잘 되어 정상적인 기능을 하는
<abbr title="Hypertext Markup Language">HTML</abbr> 문서에 부가적인 사용자 편의성의 증대를 목적으로
    사용하는 자바스크립트라면 &lt;script&gt; 태그가 동작하지 않을 경우
    자바스크립트가 없는 <abbr title="Hypertext Markup Language">HTML</abbr> 문서와 같이 작동하게 되므로
    굳이 &lt;noscript&gt; 태그가 필요하지 않을 것이다.</p>

<ins datetime="2008-04-25T04:30:00+09:00">
    <p>다음의 두 코드를 보자. 직업을 입력하지 않았을 때 오류메시지를 표시하는 스크립트를 삽입한 폼이다.</p>
    <pre><code class="html">&lt;form action=&quot;insert&quot; id=&quot;f&quot;&gt;
    &lt;fieldset&gt;
        &lt;label for=&quot;yourjob&quot;&gt;당신의 직업&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;job&quot; id=&quot;yourjob&quot; /&gt;
        <strong>&lt;a href=&quot;javascript:checkForm();&quot;&gt;전송&lt;/a&gt;</strong>
    &lt;/fieldset&gt;
&lt;/form&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
// &lt;![CDATA[
function checkForm() {
    var form = document.getElementById(&quot;f&quot;);
    if (form.elements[&quot;job&quot;].value == &quot;&quot;) {
        alert(&quot;직업을 입력해주세요.&#038;quot);
    } else {
        form.submit();
    };
};
// ]]&gt;
&lt;/script&gt;</code></pre>
    <pre><code class="html">&lt;form action=&quot;insert&quot; id=&quot;f&quot;&gt;
    &lt;fieldset&gt;
        &lt;label for=&quot;yourjob&quot;&gt;당신의 직업&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;job&quot; id=&quot;yourjob&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;전송&quot; /&gt;
    &lt;/fieldset&gt;
&lt;/form&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
// &lt;![CDATA[
if (document.getElementById &amp;&amp; document.getElementById(&quot;f&quot;)) {
    var form = document.getElementById(&quot;f&quot;);
    form.onsubmit = function() {
        if (this.elements[&quot;job&quot;].value == &quot;&quot;) {
            alert(&quot;직업을 입력해주세요.&#038;quot);
            return false;
        };
    };
};
// ]]&gt;
&lt;/script&gt;</code></pre>
    <p>전자는 자바스크립트를 제거하였을 때 아무런 동작을 하지 않는 예제이고
        후자는 <abbr title="Hypertext Markup Language">HTML</abbr>에 선언된 링크로 이동할 수 있는 예제이다.
    <strong>어떤 코드를 작성하던 비슷한 시간이 소요</strong>되겠지만 &#8211; 학습에 필요한 시간은 제외한다. -
        전자의 경우 <strong>문서의 가치가 훨씬 떨어진다</strong>.</p>
</ins>

<p>모든 사용자가 당신의 자바스크립트 코드를 실행할 수 있을 것이라고 기대하지 말아야 한다.
    또, 어떤 사용자는 당신의 자바스크립트 코드 중 어떤 부분을 제대로 해석하지 못한다는 것을 알아야 한다.</p>

<p>자바스크립트는 플래시, ActiveX와 같은 외부 플러그인과 개념 상 다르지 않다.
    오히려 언급한 것처럼 사용자에 따라 불완전하게 실행될 가능성이 있기 때문에 더 다루기 어려운 기술임을 인식하여야 한다.</p>

<h3>참고 링크</h3>
<ul>
    <li><a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">Unobtrusive JavaScript &#8211; wikipedia</a></li>
    <li><a href="http://www.alistapart.com/articles/behavioralseparation">Behavior Seperation &#8211; A List Apart</a></li>
    <li><a href="http://sangini.net/56">자바스크립트를 올바르게 사용하기 &#8211; Sangini World</a></li>
    <li><a href="http://hyeonseok.com/docs/accessible-javascript/">접근성을 해치지 않는 자바스크립트의 사용 &#8211; 신현석</a></li>
</ul>

<p class="updatedat">마지막 업데이트: 2008년 4월 25일 04시 30분</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/11/25/%ea%b2%b8%ec%86%90%ed%95%9c-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ea%b8%b0%eb%b3%b8/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>『방탄 Ajax』 출시</title>
		<link>http://miya.pe.kr/2007/10/22/%e3%80%8e%eb%b0%a9%ed%83%84-ajax%e3%80%8f-%ec%b6%9c%ec%8b%9c/</link>
		<comments>http://miya.pe.kr/2007/10/22/%e3%80%8e%eb%b0%a9%ed%83%84-ajax%e3%80%8f-%ec%b6%9c%ec%8b%9c/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 04:36:38 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[방탄 Ajax]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/39</guid>
		<description><![CDATA[방탄 Ajax 표지 DOM Script의 저자 제레미 키스(Jeremy Keith)가 쓴 방탄 Ajax가 출간되었습니다. DOM Script에서 올바른 DOM, 겸손한(unobtrusive) 자바스크립트에 관한 이야기를 했다면 이번엔 올바른 Ajax의 활용, 접근성을 확보하는 Ajax 개발론, 즉 겸손한(unobtrusive) Ajax에 대해 이야기하고 있습니다. 이 책에서의 Ajax는 Asynchronous JavaScript and XML가 아닌 미국과 영국 등에서 과거에 쓰였던 Ajax라는 단어의 뜻으로서 정의하고 있습니다. 쉽게 [...]]]></description>
			<content:encoded><![CDATA[<p class="attach-image"><img src="http://cfs3.tistory.com/upload_control/download.blog?fhandle=YmxvZzcwNDEyQGZzMy50aXN0b3J5LmNvbTovYXR0YWNoLzAvNS5qcGc=" alt="방탄 Ajax 표지" height="376" width="300" /><br />
방탄 Ajax 표지</p>
<p><a href="http://www.acornpub.co.kr/blog/135"><abbr title="Document Object Model">DOM</abbr> Script</a>의 저자 제레미 키스(Jeremy Keith)가 쓴 <a href="http://www.acornpub.co.kr/blog/157">방탄 Ajax</a>가 출간되었습니다. <a href="http://www.acornpub.co.kr/blog/135"><abbr title="Document Object Model">DOM</abbr> Script</a>에서 올바른 <abbr title="Document Object Model">DOM</abbr>, 겸손한(unobtrusive) 자바스크립트에 관한 이야기를 했다면 이번엔 올바른 Ajax의 활용, 접근성을 확보하는 Ajax 개발론, 즉 겸손한(unobtrusive) Ajax에 대해 이야기하고 있습니다.</p>
<p>이 책에서의 Ajax는 Asynchronous JavaScript and <abbr title="eXtensible Markup Language">XML</abbr>가 아닌 미국과 영국 등에서 과거에 쓰였던 Ajax라는 단어의 뜻으로서 정의하고 있습니다. 쉽게 말해 Flex, Silverlight 등의 <abbr title="Rich Internet Application">RIA</abbr>을 포괄하는 의미라는 것입니다.</p>
<p><q>모든 웹 사이트, 웹 어플리케이션의 기본은 <strong>문서</strong>이다.</q> 라고 이야기하는 이 책에서는 기본적인 문서(<abbr title="(eXtensible) HyperText Markup Language">(X)HTML</abbr>)로 부터 출발하여 점층적으로 <abbr title="Cascading StyleSheet">CSS</abbr>, Ajax를 덧붙여 나아가는 개발 방식을 이야기하고 있습니다. 기본적으로 <a href="http://ko.wikipedia.org/wiki/%ED%95%98%EC%9C%84_%ED%98%B8%ED%99%98%EC%84%B1">하위 호환성</a>과 접근성이 보장된 문서(<abbr title="(eXtensible) HyperText Markup Language">(X)HTML</abbr>)의 틀에서 점층적으로 새로운 기술들을 적용해 나아간다면 겸손한(unobtrusive) Ajax의 제작이 어렵지 않을 것이라는 이야기입니다.</p>
<p>Ajax 기술들은 아직 충분히 접근성이 검증되어 있지 않은 새로운 기술들입니다. <a href="http://www.acornpub.co.kr/blog/157">방탄 Ajax</a>는 그에 대해 지적하며 Ajax 기술 적용 시에 잃을 수 있는 것들에 대해 경고하고 있습니다. 저는 이것이 이 책이 얘기하는 주제라고 생각합니다. 눈 앞에 펼쳐질 화려한 효과에 앞서 고려하지 않으면 잃게 될 것이 무엇인지, 잃게 될 것들을 지키려면 어떻게 해야 할지가 명확하지 않다면 이 책을 볼 충분한 이유가 될 것 같습니다.</p>
<p>덧) 항상 좋은 책을 볼 수 있게 해주시는 <a href="http://anarch.tistory.com/">명수씨</a>, 감사합니다! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/10/22/%e3%80%8e%eb%b0%a9%ed%83%84-ajax%e3%80%8f-%ec%b6%9c%ec%8b%9c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>여러 개의 제출 버튼을 가진 폼은 어떻게 접근성을 보장할까?</title>
		<link>http://miya.pe.kr/2007/10/14/%ec%97%ac%eb%9f%ac-%ea%b0%9c%ec%9d%98-%ec%a0%9c%ec%b6%9c-%eb%b2%84%ed%8a%bc%ec%9d%84-%ea%b0%80%ec%a7%84-%ed%8f%bc%ec%9d%80-%ec%96%b4%eb%96%bb%ea%b2%8c-%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%eb%b3%b4/</link>
		<comments>http://miya.pe.kr/2007/10/14/%ec%97%ac%eb%9f%ac-%ea%b0%9c%ec%9d%98-%ec%a0%9c%ec%b6%9c-%eb%b2%84%ed%8a%bc%ec%9d%84-%ea%b0%80%ec%a7%84-%ed%8f%bc%ec%9d%80-%ec%96%b4%eb%96%bb%ea%b2%8c-%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%eb%b3%b4/#comments</comments>
		<pubDate>Sun, 14 Oct 2007 09:21:50 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Markup]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/40</guid>
		<description><![CDATA[웹 사이트 개발을 하다보면 하나의 폼에 여러 개의 제출 버튼을 써야하는 경우가 있다. 그 경우 자바스크립트를 사용하지 않고 원하는 기능을 구현하려면 어떻게 해야할까? IE의 버그로 인해 여러 방법 중 대부분이 사용이 어렵지만 submit 타입의 input 태그를 여러 개 넣어서 폼을 구성하면 버그 없고 자바스크립트 의존적이지 않은 결과물을 만들 수 있다. 그럼 실제로 각 글에 체크박스가 [...]]]></description>
			<content:encoded><![CDATA[<p>웹 사이트 개발을 하다보면 하나의 폼에 여러 개의 제출 버튼을 써야하는 경우가 있다. 그 경우 자바스크립트를 사용하지 않고 원하는 기능을 구현하려면 어떻게 해야할까? IE의 버그로 인해 여러 방법 중 대부분이 사용이 어렵지만 submit 타입의 input 태그를 여러 개 넣어서 폼을 구성하면 버그 없고 자바스크립트 의존적이지 않은 결과물을 만들 수 있다.</p>
<p>그럼 실제로 각 글에 체크박스가 있어서 체크 후 삭제 혹은 이동하는 기능이 있는 게시판 목록을 만들어보자. 결과물은 다음의 그림과 같을 것이다.</p>
<p><img src="http://cfs3.tistory.com/upload_control/download.blog?fhandle=YmxvZzcwNDEyQGZzMy50aXN0b3J5LmNvbTovYXR0YWNoLzAvNC5wbmc=" alt="여러 개의 제출 버튼을 가진 폼 예제" height="467" width="600" /></p>
<p>그림을 보고 <abbr title="Hypertext Markup Language">HTML</abbr> 페이지를 만들어보자.</p>
<pre><code class=&quot;html&quot;>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;ko&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;여러개의 폼 제출 버튼 예제&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;form action=&quot;test.html&quot;&gt;
        &lt;h1&gt;여러개의 폼 제출 버튼 예제&lt;/h1&gt;
        &lt;table summary=&quot;게시판 목록&quot;&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th&gt;선택&lt;/th&gt;
                    &lt;th&gt;제목&lt;/th&gt;
                    &lt;th&gt;작성자&lt;/th&gt;
                    &lt;th&gt;작성일&lt;/th&gt;
                    &lt;th&gt;조회수&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;input type=&quot;checkbox&quot; title=&quot;1번글 선택&quot;
                         name=&quot;check1&quot; value=&quot;Y&quot; /&gt;&lt;/td&gt;
                    &lt;td&gt;게시판 제목1&lt;/td&gt;
                    &lt;td&gt;아무개&lt;/td&gt;
                    &lt;td&gt;2007년 10월 13일&lt;/td&gt;
                    &lt;td&gt;4&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;input type=&quot;checkbox&quot; title=&quot;2번글 선택&quot;
                         name=&quot;check2&quot; value=&quot;Y&quot; /&gt;&lt;/td&gt;
                    &lt;td&gt;게시판 제목2&lt;/td&gt;
                    &lt;td&gt;아무개&lt;/td&gt;
                    &lt;td&gt;2007년 10월 13일&lt;/td&gt;
                    &lt;td&gt;4&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;input type=&quot;checkbox&quot; title=&quot;3번글 선택&quot;
                         name=&quot;check3&quot; value=&quot;Y&quot; /&gt;&lt;/td&gt;
                    &lt;td&gt;게시판 제목3&lt;/td&gt;
                    &lt;td&gt;아무개&lt;/td&gt;
                    &lt;td&gt;2007년 10월 13일&lt;/td&gt;
                    &lt;td&gt;4&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;&lt;input type=&quot;checkbox&quot; title=&quot;4번글 선택&quot;
                         name=&quot;check4&quot; value=&quot;Y&quot; /&gt;&lt;/td&gt;
                    &lt;td&gt;게시판 제목4&lt;/td&gt;
                    &lt;td&gt;아무개&lt;/td&gt;
                    &lt;td&gt;2007년 10월 13일&lt;/td&gt;
                    &lt;td&gt;4&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
        &lt;p&gt;
            &lt;input type=&quot;submit&quot; name=&quot;delete_selected&quot;
                value=&quot;선택된 글 삭제&quot; /&gt;
            &lt;input type=&quot;submit&quot; name=&quot;move_selected&quot;
                value=&quot;선택된 글 이동&quot; /&gt;
        &lt;/p&gt;
    &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>선택된 글 삭제와 선택된 글 이동 버튼을 submit 타입의 input 태그로 주고 각각에 name 속성을 부여하였다. 여기에서 1번글을 선택하고 선택된 글 삭제 버튼을 누른다면 제출된 값은 다음과 같을 것이다.</p>
<pre><code>check1 = &quot;Y&quot;
delete_selected = &quot;선택된 글 삭제&quot;</code></pre>
<p>마찬가지로 이동 버튼을 누른다면,</p>
<pre><code>check1 = &quot;Y&quot;
move_selected = &quot;선택된 글 이동&quot;</code></pre>
<p>위와 같은 값이 제출될 것이다.</p>
<p>&quot;선택된 글 삭제&quot;와 같은 값을 다른 원하는 임의의 값으로 줄 수 없을까? 답은 불가능하다. 화면에 보여지는 값을 그대로 사용해야 한다. 이 것이 필자가 설명한 방식의 한계이다. 개발자들은 보통 &quot;Y&quot; 혹은 &quot;delete&quot;와 같은 명확한 코드 형식의 단어를 사용하고 싶어할 것이다. 하지만 자바스크립트를 사용할 수 없는 사용자들의 불평을 듣고 싶지 않다면 현재로서는 어쩔 수 없다. IE(IE7 포함) 사용자는 submit 타입의 input 태그 외에 submit 타입의 button 태그나 image 타입의 input 혹은 button 태그에 name 속성을 통해 제출 값을 구분할 수 없기 때문이다.</p>
<p>이미지 버튼일 경우는 어떻게 하나? image 타입의 input 태그를 사용할 수 없다면? 답은 <a href="http://www.stuffandnonsense.co.uk/archives/mir_image_replacement.html">Image Replacement</a>이다. Image Replacement를 사용할 수 없는 상황이라면 폼 제출 버튼을 이미지 &#8211; 배경 이미지 제외 &#8211; 로 하지 않는 디자인을 고려해보아야 할 것이다.</p>
<pre><code class=&quot;html&quot;>&lt;style type=&quot;text/css&quot;&gt;
input.delete-selected {
    width: 100px;
    height: 20px;
    background: url(delete_selected.gif) no-repeat;
    text-indent: -5000px;
}
input.delete-selected {
    width: 100px;
    height: 20px;
    background: url(move_selected.gif) no-repeat;
    text-indent: -5000px;
}
&lt;/style&gt;
&lt;!-- 중략 --&gt;
&lt;p&gt;
    &lt;input type=&quot;submit&quot; class=&quot;delete-selected&quot;
        name=&quot;delete_selected&quot; value=&quot;선택된 글 삭제&quot; /&gt;
    &lt;input type=&quot;submit&quot; class=&quot;move-selected&quot;
        name=&quot;move_selected&quot; value=&quot;선택된 글 이동&quot; /&gt;
&lt;/p&gt;</code></pre>
<p>글의 코드는 아래의 첨부파일을 다운로드를 통해 실행해볼 수 있다.</p>
<p><a href="http://tenshi.tistory.com/attachment/ck4.html"><img src="http://cfs.tistory.com/blog/image/extension/html.gif" style="vertical-align: middle" alt="" /> select.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/10/14/%ec%97%ac%eb%9f%ac-%ea%b0%9c%ec%9d%98-%ec%a0%9c%ec%b6%9c-%eb%b2%84%ed%8a%bc%ec%9d%84-%ea%b0%80%ec%a7%84-%ed%8f%bc%ec%9d%80-%ec%96%b4%eb%96%bb%ea%b2%8c-%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%eb%b3%b4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>웹접근성과 select 태그의 사용</title>
		<link>http://miya.pe.kr/2007/08/20/%ec%9b%b9%ec%a0%91%ea%b7%bc%ec%84%b1%ea%b3%bc-select-%ed%83%9c%ea%b7%b8%ec%9d%98-%ec%82%ac%ec%9a%a9/</link>
		<comments>http://miya.pe.kr/2007/08/20/%ec%9b%b9%ec%a0%91%ea%b7%bc%ec%84%b1%ea%b3%bc-select-%ed%83%9c%ea%b7%b8%ec%9d%98-%ec%82%ac%ec%9a%a9/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 09:15:21 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Markup]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/46</guid>
		<description><![CDATA[(그림1. 전송 버튼이 적용되지 않은 select 태그) 그림1은 현재 게시판의 분류나 바로가기 메뉴 등에서 선택 시 바로 폼을 전송시키거나 자바스크립트를 이용하여 페이지 전환을 하는 용도로 쓰이고 있다. 그러나 키보드 사용자나 자바스크립트를 사용할 수 없는 사용자를 고려하였을 때 위와 같은 사용은 불가하다. 자바스크립트가 불가능한 사용자를 위해 &#60;noscript&#62; 태그를 이용하여 서브밋 버튼을 추가하면 되지 않느냐? 그것은 반쪽짜리 [...]]]></description>
			<content:encoded><![CDATA[<p class="attach-image"><img src="http://cfs3.tistory.com/upload_control/download.blog?fhandle=YmxvZzcwNDEyQGZzMy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMS5wbmc=" alt="전송 버튼이 적용되지 않은 select 태그" height="384" width="455" />(그림1. 전송 버튼이 적용되지 않은 select 태그)</p>
<p>그림1은 현재 게시판의 분류나 바로가기 메뉴 등에서 선택 시 바로 폼을 전송시키거나 자바스크립트를 이용하여 페이지 전환을 하는 용도로 쓰이고 있다. 그러나 키보드 사용자나 자바스크립트를 사용할 수 없는 사용자를 고려하였을 때 위와 같은 사용은 불가하다. 자바스크립트가 불가능한 사용자를 위해 &lt;noscript&gt; 태그를 이용하여 서브밋 버튼을 추가하면 되지 않느냐? 그것은 <strong>반쪽짜리 접근성</strong>이다. 마우스 기능을 사용할 수 없는 사용자의 접근성이 상당히 저하되기 때문이다. 키보드 사용자는 select 태그의 목록을 활성화 시킨 후 아래 방향키를 한 번 누르는 순간 select 태그의 자바스크립트가 활성화되어 마치 목록 두 번째 요소를 선택한 듯한 결과를 보게 될 것이다.</p>
<p class="attach-image"><img src="http://cfs2.tistory.com/upload_control/download.blog?fhandle=YmxvZzcwNDEyQGZzMi50aXN0b3J5LmNvbTovYXR0YWNoLzAvMS5wbmc=" alt="전송 버튼이 적용된 select 태그" height="403" width="432" />(그림2. 전송 버튼이 적용된 select 태그)</p>
<p>전송 버튼을 넣고 select 태그의 onchange 이벤트를 제거하여 모든 사용자에 대한 접근성을 확보할 수 있다. 마우스 사용자들의 편의성 문제는 어떻게 하는가? 결국 판단은 제작하는 사람의 몫이지만 누군가의 접근성을 저해하면서 얻는 편의는 기능에 대한 <strong>남용</strong>이다.</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/08/20/%ec%9b%b9%ec%a0%91%ea%b7%bc%ec%84%b1%ea%b3%bc-select-%ed%83%9c%ea%b7%b8%ec%9d%98-%ec%82%ac%ec%9a%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012년까지 장애인 13만여명에 IT보조기기 보급</title>
		<link>http://miya.pe.kr/2007/08/17/2012%eb%85%84%ea%b9%8c%ec%a7%80-%ec%9e%a5%ec%95%a0%ec%9d%b8-13%eb%a7%8c%ec%97%ac%eb%aa%85%ec%97%90-it%eb%b3%b4%ec%a1%b0%ea%b8%b0%ea%b8%b0-%eb%b3%b4%ea%b8%89/</link>
		<comments>http://miya.pe.kr/2007/08/17/2012%eb%85%84%ea%b9%8c%ec%a7%80-%ec%9e%a5%ec%95%a0%ec%9d%b8-13%eb%a7%8c%ec%97%ac%eb%aa%85%ec%97%90-it%eb%b3%b4%ec%a1%b0%ea%b8%b0%ea%b8%b0-%eb%b3%b4%ea%b8%89/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 09:02:55 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/47</guid>
		<description><![CDATA[보도자료: 2012년까지 장애인 13만여명에 IT보조기기 보급 이밖에 장애인이 공공부분의 인터넷 사이트를 손쉽게 이용할 수 있도록 `웹 접근성 준수&#8217;를 제도화하기 위해 올해안에 웹 접근성 국가표준을 개정하기로 했으며 공공기관은 물론 민간기관들의 참여를 이끌어내기 위해 `웹 접근성 품질 마크&#8217;를 적극적으로 부여하기로 했다. 정부 차원에서 장애인들의 IT 활용 활성화를 추진하고 있다는 기사가 났다. 웹 접근성에 대해 국가 차원의 관심과 [...]]]></description>
			<content:encoded><![CDATA[<h3>보도자료: <a href="http://www.hankyung.com/news/app/newsview.php?aid=2007081794168&amp;sid=0104&amp;nid=004&amp;ltype=1">2012년까지 장애인 13만여명에 IT보조기기 보급</a></h3>
<blockquote><p>이밖에 장애인이 공공부분의 인터넷 사이트를 손쉽게 이용할 수 있도록 `웹 접근성 준수&#8217;를 제도화하기 위해 올해안에 웹 접근성 국가표준을 개정하기로 했으며 공공기관은 물론 민간기관들의 참여를 이끌어내기 위해 `웹 접근성 품질 마크&#8217;를 적극적으로 부여하기로 했다.</p></blockquote>
<p>정부 차원에서 장애인들의 IT 활용 활성화를 추진하고 있다는 기사가 났다. 웹 접근성에 대해 국가 차원의 관심과 필요성이 더욱 늘어나게 되었다는 이야기이다. 좋던 싫던 관심이 있던 없던 웹 표준과 접근성은 점점 피할 수 없는 필수요소가 되어가고 있다. 장애인의 인터넷 접근 장치는 점점 늘어가는데 정보를 얻는 통로인 웹사이트가 그들을 소외시킨다면 정부의 이런 정책은 아무런 의미가 없을 것이다.</p>
<p>기사대로라면 2012년에는 접근성을 보장 여부가 13만명의 잠재 이용자를 잡느냐 놓치느냐를 판가름한다. 웹표준과 웹접근성의 가치가 보다 빠르게 늘어날 것이라는 기대를 해본다.</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/08/17/2012%eb%85%84%ea%b9%8c%ec%a7%80-%ec%9e%a5%ec%95%a0%ec%9d%b8-13%eb%a7%8c%ec%97%ac%eb%aa%85%ec%97%90-it%eb%b3%b4%ec%a1%b0%ea%b8%b0%ea%b8%b0-%eb%b3%b4%ea%b8%89/feed/</wfw:commentRss>
		<slash:comments>431</slash:comments>
		</item>
	</channel>
</rss>
