<?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>NARADESIGN:BLOG &#187; CSS</title>
	<atom:link href="http://naradesign.net/wp/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://naradesign.net/wp</link>
	<description>웹표준, 웹접근성, 유니버설디자인, HTML, CSS, UI, UX, UD</description>
	<lastBuildDate>Fri, 12 Mar 2010 18:20:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>메뉴 건너 뛰기 링크(Skip Navigation).</title>
		<link>http://naradesign.net/wp/2010/03/13/1221/</link>
		<comments>http://naradesign.net/wp/2010/03/13/1221/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 18:11:47 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Skip Navigation]]></category>
		<category><![CDATA[메뉴건너뛰기]]></category>
		<category><![CDATA[보편적디자인]]></category>
		<category><![CDATA[웹접근성]]></category>
		<category><![CDATA[웹표준]]></category>
		<category><![CDATA[유니버설디자인]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/03/13/1221/</guid>
		<description><![CDATA[
헤딩은 콘텐츠 블럭을 우회하는 가장 효과적인 방법
반복되는 콘텐츠 블럭을 우회하는 방법
메뉴 건너 뛰기 링크에 관한 쟁점
키보드 사용자에게만 유용한 메뉴 건너 뛰기 링크
글로벌 네비게이션을 본문 콘텐츠보다 늦게 마크업 하는 경우
지나치게 많은 &#8216;** 건너 뛰기&#8217; 제공은 오히려 공해
메뉴 건너 뛰기에 관한 더 많은 의견들

메뉴 건너 뛰기 링크란 하나의 웹 사이트에서 모든 페이지에 걸쳐 반복해서 등장하는 글로벌 네비게이션과 [...]]]></description>
			<content:encoded><![CDATA[<ul class="toc">
<li class="toc3"><a href="#h1268411810971">헤딩은 콘텐츠 블럭을 우회하는 가장 효과적인 방법</a></li>
<li class="toc3"><a href="#h1268411867432">반복되는 콘텐츠 블럭을 우회하는 방법</a></li>
<li class="toc3"><a href="#h1268412059078">메뉴 건너 뛰기 링크에 관한 쟁점</a></li>
<li class="toc3"><a href="#h1268414146871">키보드 사용자에게만 유용한 메뉴 건너 뛰기 링크</a></li>
<li class="toc3"><a href="#h1268414697637">글로벌 네비게이션을 본문 콘텐츠보다 늦게 마크업 하는 경우</a></li>
<li class="toc3"><a href="#h1268415232758">지나치게 많은 &#8216;** 건너 뛰기&#8217; 제공은 오히려 공해</a></li>
<li class="toc3"><a href="#h1268416423255">메뉴 건너 뛰기에 관한 더 많은 의견들</a></li>
</ul>
<p>메뉴 건너 뛰기 링크란 하나의 웹 사이트에서 모든 페이지에 걸쳐 반복해서 등장하는 글로벌 네비게이션과 로컬 네비게이션을 건너 뛸 수 있는 링크를 말합니다. 마우스를 함께 사용하는 사람은 이 링크가 왜 필요한지 알기 어렵지만 키보드만으로 웹을 탐색하는 사람들에게는 상당히 중요한 의미를 갖습니다.</p>
<blockquote class="citation">
<p>2.4.1 Bypass Blocks: A mechanism is available to bypass blocks of content that are repeated on multiple Web pages. (Level A) 2.4.1 블럭 우회: 여러 웹 페이지에서 반복되는 콘텐츠 블럭을 우회할 수 있어야 한다. (수준 A)</p>
<p><cite><a href="http://naradesign.net/wiki/WCAG_2.0#.EC.A7.80.EC.B9.A8_2.4_.ED.83.90.EC.83.89_.EA.B0.80.EB.8A.A5.EC.84.B1:_.ED.83.90.EC.83.89.ED.95.98.EA.B1.B0.EB.82.98_.EC.BD.98.ED.85.90.EC.B8.A0.EB.A5.BC_.EC.B0.BE.EA.B1.B0.EB.82.98_.EC.9C.84.EC.B9.98.EB.A5.BC_.ED.8C.90.EB.8B.A8.ED.95.A0_.EC.88.98_.EC.9E.88.EB.8F.84.EB.A1.9D_.EB.8F.84.EC.9A.B8_.EB.B0.A9.EB.B2.95.EC.9D.84_.EC.A0.9C.EA.B3.B5.ED.95.B4.EC.95.BC_.ED.95.9C.EB.8B.A4.">WCAG 2.0 : 2.4.1</a></cite></p></blockquote>
<h3 id="h1268411810971">헤딩은 콘텐츠 블럭을 우회하는 가장 효과적인 방법</h3>
<p>시각 장애인은 마우스 포인터를 볼 수 없기 때문에 키보드만으로 웹을 탐색을 합니다. 물론 Tab키와 방향키 만으로 탐색을 하는 것은 아닙니다. 화면 낭독 프로그램은 &#8216;링크만, 헤딩만&#8217; 따로 모아서 탐색할 수 있고 특히 &#8216;링크&#8217; 텍스트를 설명력 있게 제공하는 것도 당연히 좋지만 적절한 &#8216;헤딩&#8217;을 제공하는 것은 더더욱 중요합니다. 헤딩은 콘텐츠 블럭을 건너 뛸 수 있는 단서가 되기 때문이고 시각 장애인에게는 불필요한 콘텐츠를 잘 건너 뛰게 해주는 것이 매우 중요합니다. 시각이 있는 사람들도 자각하지 못하는 사이에 이미 불필요한 콘텐츠를 무시하는 것에 학습되어 있습니다. 눈에 잘 띄도록 만든 배너를 빠르게 무시하는 것은 방법이라기 보다 본능적인 반응에 가깝습니다.&nbsp;헤딩은 콘텐츠 블럭을 우회하는 가장 효과적인 방법 입니다.</p>
<h3 id="h1268411867432">반복되는 콘텐츠 블럭을 우회하는 방법</h3>
<p>콘텐츠와 콘텐츠 사이를 빠르게 건너뛰기 위하여 시각 장애인에게 헤딩(h1, h2, h3, h4, h5, h6) 정보가 중요하다는 사실을 말씀드렸습니다만 사실 오늘의 주제는 &#8216;메뉴 건너 뛰기&#8217; 입니다. 메뉴에 헤딩을 제공하는 사람은 별로 없고 제공해야 한다는 지침도 없으며 오히려 제공했을 때 더 어색하고 불편할 수 있습니다. 따라서 메뉴에는 보통 헤딩이 없습니다. 하지만 한 두 페이지 정도만 탐색해 보면 시각이 있고 없고를 떠나서 누구나 그것이 메뉴라는 것을 알게 됩니다. 같은 패턴의 데이터가 반복 되기 때문입니다.</p>
<p class="img" style="text-align: left; "><img width="600" height="236" class="xe_filesrl_10379" alt="한빛고등학교는 웹 사이트는 모든 페이지에 메뉴 건너 뛰기 링크를 제공하고 있다" src="http://naradesign.net/xe/files/attach/images//373/010/skipNavigation1_1.png" /></p>
<p>이렇게 모든 페이지마다 지속적으로 반복되는 네비게이션들을 키보드 사용자는 어떻게 탐색해야 할까요? Tab키를 계속 누르고만 있어야 할까요? 다 필요해서 있는 것이니 반복 되더라도 계속해서 탐색하고 듣고 있어야 하는 것일까요? 아닐껍니다. 건너 뛸 수 있는 장치를 제공해 주어야 합니다. 이미 위에서 &#8216;WCAG 2.4.1&#8242; 구절을 인용했지만 블럭을 우회할 수 있어야 한다는 지침은 &#8216;수준 A&#8217; 입니다. 수준 A는 최소한 지켜야 하는 수준으로써 가장 중요하다는 의미와 맞닿아 있습니다. 우리는 반복되는 콘텐츠 블럭을 건너 뛸 수 있도록 하기 위하여 &#8216;메뉴 건너 뛰기&#8217; 링크를 제공할 수 있습니다.</p>
<h3 id="h1268412059078">메뉴 건너 뛰기 링크에 관한 쟁점</h3>
<p>메뉴 건너 뛰기 링크를 제공해야 한다는 의견에는 거의 모든 웹 접근성 전문가들이 동의하지만 그것을 제공하는 방법에는 크게 다음과 같은 세 가지 다른 구현 방법이 있습니다.</p>
<ul>
<li>메뉴 건너 뛰기 링크는 시각이 있는 사람도 볼 수 있도록 웹 페이지 최 상단에 항상 노출해야 한다.</li>
<li>메뉴 건너 뛰기 링크는 시각이 있는 사람에게는 방해가 되므로 숨김 처리하고 키보드가 접근할 때에만 노출해야 한다.</li>
<li>메뉴 건너 뛰기 링크는 시각이 있는 사람에게는 방해가 되므로 항상 숨김 처리 해야 한다.</li>
</ul>
<p>여러분은 어떤 의견에 동의 하시나요? 저는 두 번째 방법을 가장 좋은 방법이라고 생각하고 있습니다. 만약 여러분이 &#8216;네이버&#8217; 웹 페이지를 개발한다면 여러분들은 모든 네이버 웹 사이트 최 상단에 &#8216;메뉴 건너 뛰기&#8217; 링크를 넣어야 한다고 생각 하시나요? 저는 그렇게 생각하지 않습니다. &#8216;메뉴 건너 뛰기&#8217; 링크는 시각이 있는 사람에게는 오히려 건너 뛰고 무시해야 할 콘텐츠가 됩니다. 마우스를 조작하는 사람에게 이 링크는 필요치 않으니까요.</p>
<p>그렇다고 해서 항상 숨김 처리 하는 것도 문제가 됩니다. 왜냐하면 시각 장애인만 이 링크를 사용하는 것은 아니기 때문 입니다. 시각은 있지만 손과 발을 자유롭게 사용할 수 없는 지체 장애인은 마우스 스틱이라는 빨대 모양의 막대를 이용해서 키보드만으로 웹을 탐색 합니다. 손과 발이 자유롭지 못하기 때문에 입에 막대를 물고 키보드를 두드립니다.&nbsp;메뉴 건너 뛰기 링크에 접근 했을 때 링크가 화면에 보여야 하는 이유는 이렇게 시각은 있지만 키보드만을 사용할 수 밖에 없는 장애인들에게 유용하기 때문 입다.&nbsp;간혹 TV에서 팔이 없는 지체 장애인이 발로 마우스를 조작하는 모습을 본 기억이 있으실 껍니다. 하지만 발이 있다고 해서 모든 지체 장애인이 발로 마우스를 자유롭게 조작하는 것은 아닙니다.</p>
<h3 id="h1268414146871">키보드 사용자에게만 유용한 메뉴 건너 뛰기 링크</h3>
<p>키보드 사용자에게만 유용한 메뉴 건너 뛰기 링크 예제를 만드는 것은 정말 쉽습니다. 자바스크립트는 필요치 않고 HTML과 CSS만으로 가능합니다. &lt;a&gt; 요소의 width, height, overflow 속성을 조절해서 기본적으로 화면에 보이지 않도록 처리한 다음 a:focus 상태일 때에는 width, height 값이 auto가 되도록 처리하는 것입니다.</p>
<div class="iframe" style="display: block; "><iframe frameborder="0" width="100%" style="display: block; height: 380px; " src="http://naradesign.net/ouif/uio/navigation/skip/xhtml.html" title="키보드 접근시에만 메뉴 건너 뛰기 링크가 화면에 보이는 예제 - 이 예제를 새 창으로 보기"></iframe><span>키보드 접근시에만 메뉴 건너 뛰기 링크가 화면에 보이는 예제 &#8211; <a href="http://naradesign.net/ouif/uio/navigation/skip/xhtml.html" target="_blank">이 예제를 새 창으로 보기</a></span></div>
<h3 id="h1268414697637">글로벌 네비게이션을 본문 콘텐츠보다 늦게 마크업 하는 경우</h3>
<p>글로벌 네비게이션을 본문 콘텐츠보다 나중에 마크업 하는 경우도 있습니다. 화면에 보이는 것과 마크업 순서를 다르게 처리 한다고 해서 항상 논리적인 순서가 잘 못 되었다고 말 할 수는 없습니다. 지금 제가 사용하고 있는 <a target="_self" href="http://naradesign.net/xe/">Textyle</a> 블로그와 <a target="_self" href="http://naradesign.net/wp/">Wordpress</a> 블로그는 모두 본문 콘텐츠가 먼저 마크업 되고 글로벌 메뉴가 나중에 마크업 되어 있습니다. 이런 경우라면 &#8216;메뉴 건너 뛰기&#8217; 링크보다 &#8216;본문 건너 뛰기&#8217; 링크가 더 적절할 것이고&nbsp;나아가 &#8216;건너 뛰기 링크&#8217;는 생략해도 됩니다. 본문 콘텐츠는 모든 페이지에서 반복되는 내용도 아니고 많은 링크가 포함되어 있지도 않기 때문 입니다.</p>
<h3 id="h1268415232758">지나치게 많은 &#8216;** 건너 뛰기&#8217; 제공은 오히려 공해</h3>
<p>반복되는 블럭을 건너 뛰어야 한다는 지침을 잘 못 이해해서 모든 웹 페이지 상단에 굉장히 많은 &#8216;** 건너 뛰기&#8217; 링크를 제공하는 경우가 있습니다. 이것은 오히려 건너 뛰어야 할 공해 콘텐츠가 됩니다. 건너 뛰어야 할 것은 &#8216;반복되는 블럭&#8217;인데 마치 한 페이지의 &#8216;목차&#8217; 처럼 제공하는 경우가 있다는 것입니다. 건너 뛰기 링크는 보편적인 경우에 &#8216;메뉴 건너 뛰기&#8217; 하나면 충분 합니다. 한편 모든 페이지에서 반복되지는 않지만 상당히 많은 버튼이나 링크가 존재한다면 해당 블럭을 건너 뛸 수 있도록 건너 뛰기 링크를 제공하는 것이 좋습니다.</p>
<p class="img" style="text-align: left; "><img width="155" height="31" class="xe_filesrl_10384" alt="네이버 뉴스 클러스터링 - 키보드가 접근 할 때 화면에 보이는 메뉴 건너 뛰기 링크" src="http://naradesign.net/xe/files/attach/images//373/010/skipNavigation2.png" /></p>
<ul>
<li><a target="_self" href="http://news.search.naver.com/newscluster/">네이버 뉴스 클러스터링</a> &#8211; 키보드가 접근 할 때 화면에 보이는 메뉴 건너 뛰기 링크 하나를 제공하고 있다.</li>
<li><a target="_self" href="http://naradesign.net/open_content/smart_editor/SEditorDemo.html">네이버 스마트에디터 베이직(오픈소스)</a>&nbsp;- 본문에 등장하는 콘텐츠로써 키보드가 접근 할 때 도구 모음을 건너 뛸 수 있는 링크를 제공하고 있다.</li>
<li><a target="_self" href="http://media.daum.net/">미디어 다음</a> &#8211; 화면에 보이지 않는 메뉴 건너 뛰기 링크 하나를 제공하고 있다.</li>
</ul>
<h3 id="h1268416423255">메뉴 건너 뛰기에 관한 더 많은 의견들</h3>
<ul>
<li><a target="_self" href="http://www.jangkunblog.com/wp/skip-navigation-is-not-a-quick-link/">Skip Navigation은 Quick Link가 아닙니다.</a>&nbsp;- 성민장군</li>
<li><a target="_self" href="http://http://www.yangkun.pe.kr/post/846">KWCAG 2.0 의 Skip Navigation(건너뛰기 링크) &ndash; 본문으로 가면 그만?</a>&nbsp;- 양군팩토리</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/03/13/1221/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS Tab Navigation + List Item Navigation.</title>
		<link>http://naradesign.net/wp/2010/03/11/1216/</link>
		<comments>http://naradesign.net/wp/2010/03/11/1216/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 12:54:56 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Tab Design]]></category>
		<category><![CDATA[웹접근성]]></category>
		<category><![CDATA[웹표준]]></category>
		<category><![CDATA[유니버설디자인]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/03/11/1216/</guid>
		<description><![CDATA[HTML/CSS와 jQuery를 이용하여 비교적 단순하지만 상당히 빈번하게 사용되는 Tab Navigation을 마크업 했습니다. 선으로 처리된 탭, 면으로 처리된 탭, 최근 게시물을 보여주는 목록 아이템 형태의 탭 디자인 입니다.&#160;
Lined Tab Navigation
Lined Tab Navigation : 예제를 새 창으로 보기
Faced Tab Navigation
Faced Tab Navigation : 예제를 새 창으로 보기
List Item Navigation
List Item Navigation : 예제를 새 창으로 보기
Tab Navigation [...]]]></description>
			<content:encoded><![CDATA[<p>HTML/CSS와 jQuery를 이용하여 비교적 단순하지만 상당히 빈번하게 사용되는 Tab Navigation을 마크업 했습니다. 선으로 처리된 탭, 면으로 처리된 탭, 최근 게시물을 보여주는 목록 아이템 형태의 탭 디자인 입니다.&nbsp;</p>
<h3 id="h1268310897684">Lined Tab Navigation</h3>
<div class="iframe" style="display: block; "><iframe frameborder="0" width="100%" style="display: block; height: 114px; " src="http://naradesign.net/ouif/uio/navigation/horizontal/linedTab/xhtml.html" title="Lined Tab Navigation : 예제를 새 창으로 보기"></iframe><span><a target="_blank" href="http://naradesign.net/ouif/uio/navigation/horizontal/linedTab/xhtml.html">Lined Tab Navigation : 예제를 새 창으로 보기</a></span></div>
<h3 id="h1268311287656">Faced Tab Navigation</h3>
<div class="iframe" style="display: block; "><iframe frameborder="0" width="100%" style="display: block; height: 127px; " src="http://naradesign.net/ouif/uio/navigation/horizontal/facedTab/xhtml.html" title="Faced Tab Navigation : 예제를 새 창으로 보기"></iframe><span><a target="_blank" href="http://naradesign.net/ouif/uio/navigation/horizontal/facedTab/xhtml.html">Faced Tab Navigation : 예제를 새 창으로 보기</a></span></div>
<h3 id="h1268311652478">List Item Navigation</h3>
<div class="iframe" style="display: block; "><iframe frameborder="0" width="100%" style="display: block; height: 215px; " src="http://naradesign.net/ouif/uio/navigation/horizontal/listTab/xhtml.html" title="List Item Navigation : 예제를 새 창으로 보기"></iframe><span><a target="_blank" href="http://naradesign.net/ouif/uio/navigation/horizontal/listTab/xhtml.html">List Item Navigation : 예제를 새 창으로 보기</a></span></div>
<h3 id="h1268311837046">Tab Navigation 예제의 특징</h3>
<ul>
<li>중첩 목록(ul&gt;li&gt;ul&gt;li)을 이용한 탭 네비게이션 예제.</li>
<li>목록의 계층 구조가 논리적으로 마크업 되어 있다.</li>
<li>키보드만으로도 접근이 가능하고 키보드 접근 순서가 논리적으로 처리되어 있다.</li>
<li>jQuery 사용.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/03/11/1216/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Vertical CSS Navigation Bar.</title>
		<link>http://naradesign.net/wp/2010/03/10/1212/</link>
		<comments>http://naradesign.net/wp/2010/03/10/1212/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:15:47 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>
		<category><![CDATA[CSS Navigation Bar]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/03/10/1212/</guid>
		<description><![CDATA[얼마 전 공유했던 &#8216;CSS Navigation Bar&#8216;는 &#8216;수평+서브메뉴 드롭다운&#8217; 네비게이션 이었는데요. 오늘 공유하는 것은 &#8216;수직+서브메뉴 드롭다운&#8217; 네비게이션 입니다. 수평 메뉴보다 수직 메뉴가 모든 면(HTML/CSS/JS)에서 코드가 더 간결하고 만들기도 쉽네요.
예제를 새 창에서 보기
특징

중첩 목록(ul&#62;li&#62;ul&#62;li) 구조로 마크업 했습니다.
키보드만으로도 조작이 가능하고 키보드의 접근 순서는 논리적으로 처리되어 있습니다.
서브메뉴 토글에 jQuery의 .slideDown() 및 .slideUp() 효과를 사용 했습니다.
이미지를 한 번 사용 했습니다.

유의사항
간혹 [...]]]></description>
			<content:encoded><![CDATA[<p>얼마 전 공유했던 &#8216;<a target="_self" href="http://naradesign.net/wp/2010/02/11/1185/">CSS Navigation Bar</a>&#8216;는 <b>&#8216;수평+서브메뉴 드롭다운&#8217;</b> 네비게이션 이었는데요. 오늘 공유하는 것은 <b>&#8216;수직+서브메뉴 드롭다운&#8217;</b> 네비게이션 입니다. 수평 메뉴보다 수직 메뉴가 모든 면(HTML/CSS/JS)에서 코드가 더 간결하고 만들기도 쉽네요.</p>
<div style="display: block;" class="iframe"><iframe frameborder="0" width="100%" title="예제를 새 창에서 보기" src="http://naradesign.net/ouif/uio/navigation/vertical/bar/xhtml.html" style="display: block; height: 331px;"></iframe><span><a target="_blank" href="http://naradesign.net/ouif/uio/navigation/vertical/bar/xhtml.html">예제를 새 창에서 보기</a></span></div>
<h3 id="h1268225323246">특징</h3>
<ul>
<li>중첩 목록(ul&gt;li&gt;ul&gt;li) 구조로 마크업 했습니다.</li>
<li>키보드만으로도 조작이 가능하고 키보드의 접근 순서는 논리적으로 처리되어 있습니다.</li>
<li>서브메뉴 토글에 jQuery의 .slideDown() 및 .slideUp() 효과를 사용 했습니다.</li>
<li>이미지를 한 번 사용 했습니다.</li>
</ul>
<h3 id="h1268225579696">유의사항</h3>
<p>간혹 이런 수직 메뉴의 서브 메뉴 펼침 동작을 <b>onmouseover</b> 이벤트 헨들러로 처리하는 경우가 있는데요. 그런 경우 사용성이나 접근성이 정말 나빠집니다.&nbsp;</p>
<p>사용성이 나빠지는 이유는 아래쪽에 있는 메뉴를 선택하기 위하여 링크 위를 <b>onmouseover</b> 하는 순간 해당 링크의 서브 메뉴가 펼쳐지는데 이는 보통 원치 않는 동작이기 때문입니다.&nbsp;</p>
<p>접근성이 나빠지는 이유는 마우스와 동등하게 키보드가 접근할 수 있도록 <b>onmouseover</b> 헨들러와 <b>onfocus</b> 헨들러를 병행해서 작성하지 않는 경우 입니다. 이런 경우 키보드가 서브 메뉴를 펼칠 수 없기 때문에 키보드 사용자는 서브 메뉴에 접근할 수 없습니다. <b>onmouseover</b> 헨들러를 사용했다면 반드시 <b>onfocus</b> 헨들러를 병행 작성하여 동등한 기능을 처리할 수 있도록 해야 합니다.</p>
<p>따라서 수직 메뉴를 드롭다운 형태로 열고 닫는 오늘의 예제와 같은 경우&nbsp;<b>onmouseover</b> 이벤트 헨들러 사용은 절대적으로 피하는 것이 좋고 <b>onmouseover</b> 이벤트 헨들러 사용은 보편적인 다른 모든 경우에도 최소화 하는 것이 좋습니다.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/03/10/1212/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Modal Windowed Login UI.</title>
		<link>http://naradesign.net/wp/2010/03/04/1199/</link>
		<comments>http://naradesign.net/wp/2010/03/04/1199/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 14:47:40 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[웹접근성]]></category>
		<category><![CDATA[웹표준]]></category>
		<category><![CDATA[유니버설디자인]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/03/04/1199/</guid>
		<description><![CDATA[오늘은 XE에 사용하려고 모달 윈도우 처리된 로그인 UIO(User Interface Object)를 하나 만들었습니다. jQuery를 이용해서 스크립트도 직접 작성해 봤는데 잘 한건지 한 번 봐주시면 좋겠네요.&#160;
미리 알려드립니다만 저는 주로 인터렉션을 프로토타이핑 해서 보여줄 목적으로 자바스크립트를 작성하기 때문에 제 블로그에서 보여드리는 예제 코드가 모두 XE에 반영되는 것은 아닙니다.

예제를 새 창으로 보기
HTML

&#8216;LOG-IN&#8217; 링크에 accesskey 속성을 사용. &#8216;Alt+L&#8217; 또는 &#8216;Alt+Shift+L&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>오늘은 XE에 사용하려고 모달 윈도우 처리된 로그인 UIO(User Interface Object)를 하나 만들었습니다. jQuery를 이용해서 스크립트도 직접 작성해 봤는데 잘 한건지 한 번 봐주시면 좋겠네요.&nbsp;</p>
<p>미리 알려드립니다만 저는 주로 인터렉션을 프로토타이핑 해서 보여줄 목적으로 자바스크립트를 작성하기 때문에 제 블로그에서 보여드리는 예제 코드가 모두 XE에 반영되는 것은 아닙니다.</p>
<div style="display: block;" class="iframe"><iframe frameborder="0" width="100%" title="예제를 새 창으로 열기" src="http://naradesign.net/ouif/uio/login/mw/xhtml.html" style="display: block; height: 336px;"></iframe></div>
<p><a target="_blank" href="http://naradesign.net/ouif/uio/login/mw/xhtml.html">예제를 새 창으로 보기</a></p>
<h3 id="h1267712226002">HTML</h3>
<ul>
<li>&#8216;LOG-IN&#8217; 링크에 accesskey 속성을 사용. &#8216;Alt+L&#8217; 또는 &#8216;Alt+Shift+L&#8217; 키를 사용하면 링크에 직접 접근.</li>
<li>논리적인 키보드 접근 순서. 로그인 레이어를 열거나 닫더라도 포커스는 초기화 되지 않고 문맥에 알맞게 순서를 유지.</li>
</ul>
<h3 id="h1267711812402">CSS</h3>
<ul>
<li>화면 전체를 덮는 반투명 레이어.</li>
<li>로그인 상자를 화면의 정 중앙에 배치.</li>
<li>서밋 버튼을 텍스트로 처리해서 텍스트를 교체할 수 있음.</li>
</ul>
<h3 id="h1267711822626">Javascript</h3>
<ul>
<li>&#8216;LOG-IN&#8217; 링크를 클릭해서 모달 윈도우 처리된 레이어 띄우기.</li>
<li>인풋에 포커스가 들어가거나 빠질 때 &#8216;레이블&#8217; 텍스트를 숨기거나 보여주기.</li>
<li>&#8216;로그인 유지&#8217; 항목에 체크하면 경고문 보여주기.</li>
<li>&#8216;ID/PW&#8217;를 입력하지 않았을 때 상황에 맞는 알럿 띄우기.</li>
<li>&#8216;Open ID&#8217; 링크를 클릭하면 오픈 아이디 화면으로 전환하기.</li>
<li>&#8216;ESC&#8217;키를 누르거나 &#8216;여백&#8217; 또는 &#8216;X&#8217; 버튼을 클릭하면 창 닫기.</li>
</ul>
<h3 id="h1267713492795">P.S.</h3>
<p>저는 얼마 전부터 <a target="_self" href="http://www.textyle.kr/">텍스타일</a>에서 글을 쓰고 있습니다. 여러분이 만약 이 글을 <a target="_self" href="http://naradesign.net/">제 워드프레스</a>에서 보셨다면 배달된 글을 보고 계신 겁니다. 텍스타일에서 작성한 글은 워드프레스, 미투데이, 트위터 등으로 자동으로 배달 된답니다. 번거롭게 퍼다 나르고 다닐 일이 없어서 좋네요. 텍스타일 한 번 사용해 보세요. 즐거운 글쓰기 경험도 해 볼겸 해서 말이죠. ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/03/04/1199/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CSS Drop Down : Emulate Select/Option.</title>
		<link>http://naradesign.net/wp/2010/02/18/1192/</link>
		<comments>http://naradesign.net/wp/2010/02/18/1192/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 17:37:28 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/02/18/1192/</guid>
		<description><![CDATA[서식 제어 요소(Form Control Element)를 디자인 하는 것은 상황에 따라 접근성을 떨어뜨리는 경우가 있기 때문에 제한되어야 하고 신중하게 사용해야 합니다. 이미 이전에 포스팅을 했지만 다시 한번 환기하는 차원에서 제한되어야 하는 서식 요소들은 어떤 것들이 있는지 살펴보겠습니다.
&#160;

스타일 변경이 제한된 서식 제어 요소들


HTML Markup
View




input type=&#34;checkbox&#34;




input type=&#34;radio&#34;




input type=&#34;file&#34;




input type=&#34;hidden&#34;
화면 출력 안됨


select, option


       [...]]]></description>
			<content:encoded><![CDATA[<p>서식 제어 요소(Form Control Element)를 디자인 하는 것은 <a href="http://naradesign.net/wp/2008/10/11/159/" target="_self">상황에 따라 접근성을 떨어뜨리는 경우가 있기 때문에 제한되어야</a> 하고 신중하게 사용해야 합니다. 이미 이전에 포스팅을 했지만 다시 한번 환기하는 차원에서 제한되어야 하는 서식 요소들은 어떤 것들이 있는지 살펴보겠습니다.</p>
<p>&nbsp;</p>
<table border="1" style="border-width: 1px 0px 0px 1px; border-top: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204); font-family: AppleGothic,나눔고딕,NanumGothic,'맑은 고딕','Malgun Gothic',돋움,Dotum,굴림,Gulim,sans-serif; font-size: 1em; margin-bottom: 15px;">
<caption style="padding: 0px 0px 0.5em; text-align: left; font-weight: bold;">스타일 변경이 제한된 서식 제어 요소들</caption>
<thead>
<tr>
<th style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top; background-color: rgb(244, 244, 244);" scope="col">HTML Markup</th>
<th style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top; background-color: rgb(244, 244, 244);" scope="col">View</th>
</tr>
</thead>
<tbody>
<tr>
<th style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top; background-color: rgb(244, 244, 244);" scope="row">input type=&quot;checkbox&quot;</th>
<td style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top;">
<input type="checkbox" style="font-family: AppleGothic,나눔고딕,NanumGothic,'맑은 고딕','Malgun Gothic',돋움,Dotum,굴림,Gulim,sans-serif; font-size: 1em;" /></td>
</tr>
<tr>
<th style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top; background-color: rgb(244, 244, 244);" scope="row">input type=&quot;radio&quot;</th>
<td style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top;">
<input type="radio" style="font-family: AppleGothic,나눔고딕,NanumGothic,'맑은 고딕','Malgun Gothic',돋움,Dotum,굴림,Gulim,sans-serif; font-size: 1em;" /></td>
</tr>
<tr>
<th style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top; background-color: rgb(244, 244, 244);" scope="row">input type=&quot;file&quot;</th>
<td style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top;">
<input type="file" style="font-family: AppleGothic,나눔고딕,NanumGothic,'맑은 고딕','Malgun Gothic',돋움,Dotum,굴림,Gulim,sans-serif; font-size: 1em;" /></td>
</tr>
<tr>
<th style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top; background-color: rgb(244, 244, 244);" scope="row">input type=&quot;hidden&quot;</th>
<td style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top;">화면 출력 안됨</td>
</tr>
<tr>
<th style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top; background-color: rgb(244, 244, 244);" scope="row">select, option</th>
<td style="border-width: 0px 1px 1px 0px; border-right: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204); padding: 2px 5px; text-align: left; vertical-align: top;">
<select style="font-family: AppleGothic,나눔고딕,NanumGothic,'맑은 고딕','Malgun Gothic',돋움,Dotum,굴림,Gulim,sans-serif; font-size: 1em;" name="select">
            <option>Option</option></select>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3 id="h1266424559111">서식 제어 요소의 디자인을 제한하는 이유</h3>
<p>이런 서식 제어 요소들의 디자인을 변경하는 것은 일단 브라우저들이 지원하지 않습니다. 이런 이유 때문에 이것을 디자인 하려는 시도는 실제로는 기능하지 않는 가짜 마크업을 남발하게되고 웹 접근성을 떨어뜨리는 요인으로 작용합니다. 하나의 콘트롤을 디자인 하기 위하여 화면에 보이는 마크업과 실제로 기능을 수행하는 마크업을 각각 따로 작성하게 되면 화면낭독기 사용자들은 화면 표시를 위한 가짜 마크업 때문에 곤경에 빠지는 상황이 연출됩니다.</p>
<p>그리고 간혹 단순한 텍스트 링크 기능을 수행함에도 불구하고<br />
<input type="radio" />라디오 버튼을 장식적인 요소로 사용한 다음 라디오 콘트롤에 자바스크립트를 입혀서 페이지 이동을 처리하는 고품격(?) 사용자 경험을 제공하기도 하는데 매우 잘못된 방법중의 하나 입니다.</p>
<p>모든 서식 제어 요소들은 사용자가 &#8216;전송&#8217; 버튼을 누르기 직전까지 아무짓도 하지 않고 기다려야 할 의무가 있습니다. 왜냐하면 그것이 바로 서식 제어 요소들의 올바른 사용법이고 시각 장애인들은 그런 표준화된 그리고 전통적인 사용자 인터렉션에 의지해서 웹을 탐색하고 있기 때문입니다.</p>
<blockquote class="citation">
<p>&quot;라디오 버튼을 눌렀을 뿐인데 페이지가 이동할 줄은 몰랐어요. 저는 전송 버튼을 누르지도 않았거든요.&quot;</p>
</blockquote>
<h3 id="h1266424626801">&lt;select&gt; 콘트롤을 본래 목적에 맞게 사용하기</h3>
<p>한편 서식 제어 요소를 사용할 때 사용자 입력을 전송하는데 쓰지 않았다고 해서 무조건 틀렸다고 말할 수도 없습니다. CSS가 일반적으로 널리 퍼지기 이전에 서식 제어 요소들은 다른 HTML 요소들이 흉내낼 수 없는 효과적인 UI 콘트롤을 제공했기 때문에 그 이점만을 취하기 위한 활용사례가 많았습니다. 현재까지도 흔하게 볼 수 있는 예가 바로 &lt;select&gt; 콘트롤 입니다. 본래의 목적은 단일 또는 다중 선택된 사용자의 선택값을 서버측에 전송하기 위한 목적이었지만 &#8216;패밀리 사이트 바로가기, 유관 기관으로 이동&#8217;과 같이 단순하게 텍스트 링크로 처리해도 될만한 UI에 지금까지도 여전히 &lt;select&gt; 요소를 사용하고 있습니다. 이 때 자바스크립트로 URL 값을 처리해서 넘기는 경우도 있고 서버측 스크립트로 값을 처리해서 넘기는 경우도 있는데 어느편이 더 유니버설한 설계 방법인지는 여러분이 직접 판단해 보시기 바랍니다.</p>
<p>하지만 한 발 더 나아가 저는 더 이상 &lt;select&gt; 콘트롤을 이용하여 페이지 이동하는 기법을 사용할 필요가 없다고 생각합니다. 자바스크립트나 서버측 스크립트를 작성해서 페이지를 이동하는 방법보다 더 쉬운 방법이 있기 때문입니다. CSS 배워서 이런데 써먹을 수 있습니다. &lt;select&gt; 콘트롤은 이제 그만 휴가 보내고 CSS에게 일을 시켜 보세요. &lt;select&gt; 요소의 드롭다운 콘트롤은 고작 &#8216;숨은 링크 목록&#8217;을 토글해서 보이거나 숨기는 인터렉션일 뿐입니다.</p>
<h3 id="h1266425081963">그럼에도 불구하고 &lt;select&gt; 콘트롤이 사랑받는 이유</h3>
<p>요소 본래의 목적에 맞지 않는 마크업과 복잡한 스크립트의 사용을 유발함에도 불구하고 &lt;select&gt; 콘트롤은 여전히 기획자, 디자이너, 개발자에게 사랑받고 있습니다. 왜 그럴까요?</p>
<ul>
<li>좁은 공간을 효과적으로 사용할 수 있기 때문에</li>
<li>클릭하면 숨은 목록을 볼 수 있는 전통적인 인터페이스로써 이미 대중에게 학습되었기 때문에</li>
<li>오랜 세월에 걸쳐 잘 작성된 레거시 코드가 있고 새로 만들 때 복사 후 붙여넣기만 하면 되니까</li>
</ul>
<p>정도로 요약할 수 있겠습니다. 결국 우리는 &lt;select&gt; 라는 콘트롤을 본래의 목적에 맞게 사용하되 &#8216;긴 직사각형의 우측 끝에 화살표가 달린 모양&#8217;만 취하면 되는 겁니다.</p>
<h3 id="h1266425651963">결론 : &lt;select&gt; 형태는 취하고 마크업은 버리자</h3>
<div style="display: block;" class="iframe"><iframe frameborder="0" width="100%" title="" src="http://naradesign.net/ouif/uio/select/xhtml.html" style="display: block; height: 230px;"></iframe></div>
<p><a href="http://naradesign.net/ouif/uio/select/xhtml.html" target="_blank">예제를 새 창에서 보기</a></p>
<p>위의 두 예제는 같은 모양을 하고 있지만 첫 번째 예제는 링크이고 두 번째 예제는 단일 선택을 위한 폼 콘트롤 입니다. 폼 콘트롤 우측에 &#8216;GO&#8217; 버튼이 보이시나요? &#8216;사용자가 폼을 전송하기 전까지는 아무짓도 하지 않아야 한다&#8217;는 원칙을 실천하기 위하여 존재하는 버튼 입니다. &#8216;GO&#8217; 버튼이 없으면 어떻게 되냐구요? 아마도 키보드 사용자는 다른 항목을 선택할 기회를 갖지 못하고 첫 번째 항목을 선택하는 순간 이미 다른 페이지로 이동되어 있거나 또는 전송 버튼을 찾느라 곤경에 빠질 것입니다. 저 &#8216;GO&#8217; 버튼이 있음으로 인해서 마우스를 사용하는 대부분의 사용자들은 불편함을 느낄 수도 있을 것입니다. 하지만 &#8216;누구나 사용&#8217;할 수 있도록 유니버설하게 개선되었기 때문에 &#8216;인류 행복의 총량&#8217;에는 큰 변화가 없을 것입니다.&nbsp;</p>
<p>다행히도 저렇게 단일 선택 옵션이 하나만 존재하는 경우 폼 대신 첫 번째 예제와 같이 링크로 처리할 수 있는 경우가 거의 대부분 입니다. 폼 대신 링크로 처리하게 되면 &#8216;GO&#8217; 버튼이 필요가 없기 때문에 모든 사람들이 더 기뻐할 것입니다. 링크 목록은 클릭하기 전까지 펼침 상태로 존재하고 Enter 키를 받아야만 페이지 이동을 하기 때문에 &#8216;GO&#8217; 버튼이 없어도 키보드만으로 제어를 할 수가 있죠.</p>
<p>위 제시된 예제는 처리해야 할 콘텐츠가 &#8216;링크&#8217; 인지 또는 &#8216;진짜 폼의 선택&#8217;을 위한 것인지 명확하게 이해한 다음 사용해야 합니다. 단순히 링크로 처리해야 할(처리해도 될) 항목을 두 번째 예제로 마크업 한다면 오늘 제 포스팅은 말짱 도루묵 입니다. 부디 의미와 목적에 맞는 마크업을 선택해서 사용해 주실것을 부탁 드립니다. 이번 예제도 <a href="http://mygony.com/" target="_self">행복한고니</a>로부터 도움을 받았습니다. 요즈음은 행복한고니가 짬짬이 알려주는 jQuery 덕분에 아주 즐거운 나날들을 보내고 있답니다. ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/02/18/1192/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>CSS Pagination Without Image.</title>
		<link>http://naradesign.net/wp/2010/02/13/1188/</link>
		<comments>http://naradesign.net/wp/2010/02/13/1188/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 15:29:01 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[Pagination]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/02/13/1188/</guid>
		<description><![CDATA[오늘은 민족 대 명절 기념으로 예전에 만들어 두었던 페이지네이션 예제를 소개해 드립니다. 아래 정도의 레퍼런스만 있다면 더 이상 페이지네이션 디자인을 하지 않아도 될것 같네요. 단 하나의 이미지도 사용하지 않고 만들었기 때문에 그냥 HTML/CSS 소스를 퍼가서 붙여넣기만 하시면 되요. 참 편리 하겠죠? ^^
예제를 새 창으로 보기
예제를 새 창으로 보기
예제를 새 창으로 보기
이렇게 페이지네이션을 만들 때 현재 [...]]]></description>
			<content:encoded><![CDATA[<p>오늘은 민족 대 명절 기념으로 예전에 만들어 두었던 페이지네이션 예제를 소개해 드립니다. 아래 정도의 레퍼런스만 있다면 더 이상 페이지네이션 디자인을 하지 않아도 될것 같네요. 단 하나의 이미지도 사용하지 않고 만들었기 때문에 그냥 HTML/CSS 소스를 퍼가서 붙여넣기만 하시면 되요. 참 편리 하겠죠? ^^</p>
<div style="display: block;" class="iframe"><iframe frameborder="0" width="100%" title="예제를 새 창으로 보기" src="http://naradesign.net/ouif/uio/navigation/pagination/regular/xhtml.html" style="display: block; height: 131px;"></iframe><span><a href="http://naradesign.net/ouif/uio/navigation/pagination/regular/xhtml.html" target="_blank">예제를 새 창으로 보기</a></span></div>
<div style="display: block;" class="iframe"><iframe frameborder="0" width="100%" title="예제를 새 창으로 보기" src="http://naradesign.net/ouif/uio/navigation/pagination/simple/xhtml.html" style="display: block; height: 78px;"></iframe><span><a target="_blank" href="http://naradesign.net/ouif/uio/navigation/pagination/simple/xhtml.html">예제를 새 창으로 보기</a></span></div>
<div class="iframe"><iframe frameborder="0" width="100%" title="예제를 새 창으로 보기" src="http://naradesign.net/ouif/uio/navigation/pagination/complex/xhtml.html" style="display: block; height: 315px;"></iframe><span><a target="_blank" href="http://naradesign.net/ouif/uio/navigation/pagination/complex/xhtml.html">예제를 새 창으로 보기</a></span></div>
<p>이렇게 페이지네이션을 만들 때 현재 페이지를 향한 링크는 걸지 않는 것이 사용성이 더 좋습니다. 자기 페이지를 향한 링크가 필요하지 않기 때문이구요. 시각장애인들에게는 현재 위치가 어딘지 알려주는 이정표와도 같은 역할을 하기 때문입니다. 저는 현재 페이지를 <span style="font-weight: bold;">&lt;a&gt;</span> 대신 <span style="font-weight: bold;">&lt;strong&gt;</span> 요소로 마크업 했습니다. 현재 페이지의 번호를 <span style="font-weight: bold;">&lt;a&gt;</span> 요소로 마크업 하고 스타일시트를 이용해서 색상이나 글꼴 굵기를 바꾸는 사례는 접근성이 좋지 않은 사례 입니다.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/02/13/1188/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>CSS Navigation Bar.</title>
		<link>http://naradesign.net/wp/2010/02/11/1185/</link>
		<comments>http://naradesign.net/wp/2010/02/11/1185/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 15:38:46 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/02/11/1185/</guid>
		<description><![CDATA[최근 저희 팀에서는 ProjectXE 라는 것을 준비하고 있습니다. 이슈트래커 또는 버그 트래킹 시스템이라고 불리우는 종류의 프로그램이죠. 현재&#160;issuetrackerXE 라는 이름으로 배포되고 있는 모듈의 기능과 디자인을 조금 더 개선시킨 패키지 버전이라고 볼 수 있습니다. 제가 직접 기획도 했으니까 나중에 배포가 시작되면 피드백도 부탁드려야 겠네요.
이번에는 운이 좋게도 디자인팀으로부터 지원을 받았는데요. 이렇게 디자인팀으로부터 지원을 받은 디자인은 품질이 상당히 좋아서 [...]]]></description>
			<content:encoded><![CDATA[<p>최근 저희 팀에서는 ProjectXE 라는 것을 준비하고 있습니다. 이슈트래커 또는 버그 트래킹 시스템이라고 불리우는 종류의 프로그램이죠. 현재&nbsp;<a target="_self" href="http://issuetracker.xpressengine.net/">issuetrackerXE</a> 라는 이름으로 배포되고 있는 모듈의 기능과 디자인을 조금 더 개선시킨 패키지 버전이라고 볼 수 있습니다. 제가 직접 기획도 했으니까 나중에 배포가 시작되면 피드백도 부탁드려야 겠네요.</p>
<p>이번에는 운이 좋게도 디자인팀으로부터 지원을 받았는데요. 이렇게 디자인팀으로부터 지원을 받은 디자인은 품질이 상당히 좋아서 한 번 쓰고 말기에는 정말 아깝더라구요. 재 활용 가치가 있는 UI 콤포넌트는 가끔 처음부터 재 사용을 염두해 두고 설계를 합니다. 물론 시간이 무척 오래 걸리는 단점은 있지만 다른 누군가의 시간을 분명히 단축해 줄꺼라 믿고 있습니다.</p>
<p>오늘 공유해 드릴 UI 콤포넌트는 평범한 네비게이션 바 입니다. 이런 종류의 네비게이션은 너무 흔해서 일년에 열두번도 더 코딩을 하지만 항상 재 사용을 염두하지는 않았기 때문에 할 때마다 새로 만들고 처음부터&nbsp;다르게 코딩 합니다. 물론 디자인이 조금씩 달라지는 것도 이유가 있겠지만 다소 소모적인 부분이 있었던 것도 사실입니다. 보기에 평범해 보이지만 재 사용과 보편적 설계를 위해서 제가 이 네비게이션 바에 얼마나 많은 정성을 쏟았는지 한 번 설명드려 보겠습니다.</p>
<div class="iframe" style="display: block;"><iframe frameborder="0" width="100%" style="display: block; height: 200px;" src="http://naradesign.net/ouif/uio/navigation/horizontal/bar/xhtml.html" title="CSS Navigation Bar. 새 창으로 보기"></iframe><span>CSS Navigation Bar. <a target="_blank" href="http://naradesign.net/ouif/uio/navigation/horizontal/bar/xhtml.html">새 창으로 보기</a></span></div>
<h3 id="h1265811047234">보편적이고 사용성이 좋은</h3>
<p>수평 네비게이션은 보편적인 형태지만 하위 메뉴를 처리하는 방법에는 크게 두 가지 형태가 있습니다. 하위 메뉴를 <a target="_self" href="http://www.president.go.kr/kr/index.php">수평으로 늘어뜨리거나</a> 또는 위 예제와 같이 <a target="_self" href="http://www.whitehouse.gov/">수직으로 늘어뜨리거나</a>. 그런데 이 두 가지 형태의 메뉴 구조는 사용성이 크게 다릅니다. 하위 메뉴를 수직으로 늘어뜨리는 것이 사용성과 확장성이 훨씬 좋습니다.</p>
<p>하위 메뉴를 수평으로 열게 되면 사용자는 정확하게 선택하기 위하여 &#8216;L&#8217;자 모양으로 마우스 포인터를 이동시켜야 합니다. 게다가 하위 메뉴 영역을 벗어날 때 하위 메뉴가 사라지도록 처리하는 경우 사용성은 더 나빠집니다. 원하는 메뉴 링크까지 이동하려면 조심스럽게 마우스 포인터를 옮겨야 하니까요. 하위 메뉴를 수직으로 펼치면 마우스의 이동 괘적은 &#8216;I&#8217;자 모양을 그리게 되고 마우스를 옮기는 과정에서 메뉴가 닫힐 위험은 사라집니다.&nbsp;</p>
<h3 id="h1265811982648">웹 표준과 접근성을 지키는</h3>
<p>이런 메뉴 구조를 테이블 &lt;table&gt; 요소를 사용해서 마크업하면 의미에도 맞지 않고 접근성도 떨어집니다. 네비게이션 요소는 HTML로 표현할 때 &#8216;목록&#8217; 요소 &lt;ul&gt;, &lt;li&gt;로 마크업 해야 합니다. 동등한 수준의 내용이 같은 계층에서 여러번 반복 된다면 &#8216;목록&#8217;입니다. 시각장애인이 사용하는 화면 낭독기는 이런 목록에 대하여 목록의 &#8216;시작, 끝, 단계 그리고 항목의 개수&#8217;를 음성으로 알림으로써 목록에 대한 이해를 돕습니다. 상기 예제에서 &#8216;CSS X&#8217; 버튼을 누르면 네비게이션이 어떤 HTML 구조로 마크업 되어 있는지 확인할 수 있습니다. 이렇게 코딩된 네비게이션 바는 다음과 같은 장점을 갖습니다.</p>
<ul>
<li>상-하위 계층 관계가 논리적으로 처리되어 CSS를 지원하지 않거나 걷어낸 장치(예:모바일)에서도 이해하기 쉽습니다.</li>
<li>모든 항목에 키보드 접근이 가능하고 키보드 접근 순서가 의미있게 처리되어 있습니다.</li>
</ul>
<p>이 네비게이션 바는 키보드만을 사용할 수 밖에 없는 시각장애인과 지체장애인도 사용할 수 있습니다. 키보드만으로 탐색을 시도해 보세요.</p>
<h3 id="h1265813663055">유연하고 확장하기 좋은</h3>
<p>하위 메뉴의 개수가 상당히 많이 늘어나는 상황에서 수평으로 열리는 하위 메뉴는 필연적으로 줄바꿈을 동반하거나 메뉴의 개수를 제한하게 되지만 수직으로 열리는 메뉴는 그럴 필요가 없기 때문에 메뉴 데이터가 가변적인 상황에서 확장성이 더 좋습니다.</p>
<p>메뉴의 전체적인 너비는 레이아웃에 맞게 가변폭으로 조절되고 메뉴 항목의 너비도 메뉴 이름의 길이에 따라 모두 가변폭으로 처리되어 있습니다. 디자인 때문에 글자 개수를 자르거나 제한 할 필요가 없습니다.</p>
<p>네비게이션 바의 색상을 바꾸기 위해 새로 이미지를 컷팅할 필요가 없습니다. CSS 편집을 통해 배경색과 보더 색상만 변경해 주면 끝입니다. 은은하게 처리된 그라디언트 효과는 배경색상 위에 반투명 흰색 그라디언트 PNG 이미지를 덧붙이는 기법으로 처리 했습니다.</p>
<h3 id="h1265813998132">이미 널리 쓰이고 있는</h3>
<p><a target="_self" href="http://jquery.com/">jQuery</a> 자바스크립트 프레임웍을 사용했기 때문에 약간의 자바스크립트 코드를 추가하거나 변형하면 누구나 쉽게 사용할 수 있습니다. 물론 지금 그대로 사용해도 될만큼 이미 스크립트가 잘 처리되어 있습니다. 자바스크립트는 <a target="_self" href="http://mygony.com/">행복한고니</a>에 의해 처리 되었습니다.</p>
<h3 id="h1265815149574">브라우저 호환성</h3>
<p>다음과 같은 브라우저에서 테스트 되었고 호환성이 확보되어 있습니다.</p>
<ul>
<li>Internet Explorer 6</li>
<li>Internet Explorer 7</li>
<li>Internet Explorer 8</li>
<li>Firefox 3</li>
<li>Chrome 4</li>
<li>Safari 4</li>
<li>Opera 10</li>
</ul>
<p>이 네비게이션을 처리하기 위하여 테스트 했던 거의 모든 브라우저들의 버그를 다 만났던것 같습니다. 여러분이 보시기에 HTML 코드에 &#8216;이건 왜 이렇게 마크업을 했지?&#8217; 라고 의문이 든다면 그 부분이 바로 그 흔적 입니다. 특히 IE7 브라우저의 경우 링크 영역(width)을 제대로 렌더링하지 못하는 버그 때문에 상당히 고전을 했는데 결국 방법을 찾지 못하고 자바스크립트의 도움을 받아서 디버깅 했습니다. 코딩하는데 1.5일이 걸렸고 디버깅하는 시간도 1.5일이나 걸렸습니다. 3일동안 쳐다보고 있으니 아주 지겨워 죽겠더라구요.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/02/11/1185/feed/</wfw:commentRss>
		<slash:comments>57</slash:comments>
		</item>
		<item>
		<title>CSS Text Button Design With Icon.</title>
		<link>http://naradesign.net/wp/2010/01/15/1141/</link>
		<comments>http://naradesign.net/wp/2010/01/15/1141/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 13:29:46 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[웹 표준]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=1141</guid>
		<description><![CDATA[2008년 10월에 포스팅 했던 CSS Text Button Design 으로부터 색상 변화를 제거하고 대신 아이콘 세트를 추가하여 보다 아름다운 형태의 두 번째 버전을 내놓게 되었습니다. 지난 버전의 버튼에 처음에는 아이콘을 넣었다가 브라우저 호환성 맞추기가 너무 힘들어서 결국 아이콘을 제외하게 되었는데요. 이렇게 다시 넣을 수 있게 되어서 무척 만족스럽습니다. 아이콘을 더 추가할 필요가 있거나 교체하고 싶으시면 직접 [...]]]></description>
			<content:encoded><![CDATA[<p>2008년 10월에 포스팅 했던 <a href="http://naradesign.net/wp/2008/10/31/203/">CSS Text Button Design</a> 으로부터 색상 변화를 제거하고 대신 아이콘 세트를 추가하여 보다 아름다운 형태의 두 번째 버전을 내놓게 되었습니다. 지난 버전의 버튼에 처음에는 아이콘을 넣었다가 브라우저 호환성 맞추기가 너무 힘들어서 결국 아이콘을 제외하게 되었는데요. 이렇게 다시 넣을 수 있게 되어서 무척 만족스럽습니다. 아이콘을 더 추가할 필요가 있거나 교체하고 싶으시면 직접 바꾸실 수 있습니다. IE(5.5, 6, 7, 8) 그리고 최신 버전의 다양한 브라우저(Firefox, Chrome, Safari, Opera) 및 다양한 DTD(Quirks Mode, HTML 4.01, XHTML 1.0, HTML 5)에서의 호환성 테스트를 마쳤습니다. 어떤 DTD 또는 브라우저에서라도 호환성에 문제가 있는 경우는 제보해 주세요. 오픈소스뿐만 아니라 개인 및 상업적인 경우에도 아무 제한 없이 마음껏 사용하실 수 있습니다. 감사합니다.</p>
<p>[ <a target="_blank" href="http://naradesign.net/open_content/reference/textButtonWithIcon/">예제를 새창으로 보기</a> | <a target="_blank" href="http://naradesign.net/open_content/reference/textButtonWithIcon/button.css">CSS 보기</a> | <a target="_blank" href="http://naradesign.net/open_content/reference/textButtonWithIcon/button.gif">Image 보기</a> ]</p>
<p><iframe height="1700" frameborder="0" scrolling="no" width="600" title="CSS Text Button Design With Icon" src="http://naradesign.net/open_content/reference/textButtonWithIcon/"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/01/15/1141/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>유니버설 디자인을 위한 실전 UI(HTML/CSS)개발 가이드.</title>
		<link>http://naradesign.net/wp/2009/09/07/1040/</link>
		<comments>http://naradesign.net/wp/2009/09/07/1040/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 15:43:56 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[드림위버]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=1040</guid>
		<description><![CDATA[올해 하반기에 해야 할 일들이 많이 쌓여 있었습니다. 강의, 책, XE(오픈UI프로젝트)에서 사용해야 할 &#8216;교재, 콘텐츠, 가이드&#8217;를 만들어야 했는데 따로 따로 준비 하자니 너무 소모적인 일들이라 벌어진 일들을 한 번에 일망타진할 수 있는 묘안이 필요했고 제 결단은 &#8216;세 가지 일을 한 번에 해치우기&#8217; 였습니다. &#8216;토, 일&#8217; 모두 사무실로 출근하면서 후배들이 궁금해 할만한 질문들을 추린 다음 스스로 [...]]]></description>
			<content:encoded><![CDATA[<p>올해 하반기에 해야 할 일들이 많이 쌓여 있었습니다. 강의, 책, XE(<a href="http://www.xpressengine.com/openUI">오픈UI프로젝트</a>)에서 사용해야 할 &#8216;교재, 콘텐츠, 가이드&#8217;를 만들어야 했는데 따로 따로 준비 하자니 너무 소모적인 일들이라 벌어진 일들을 한 번에 일망타진할 수 있는 묘안이 필요했고 제 결단은 &#8216;세 가지 일을 한 번에 해치우기&#8217; 였습니다. &#8216;토, 일&#8217; 모두 사무실로 출근하면서 후배들이 궁금해 할만한 질문들을 추린 다음 스스로 답변을 달기 시작 했는데 오늘 문서를 완성(?) 했습니다.  여러 문서들을 참조 했지만 주관적인 의견이 포함된 내용도 있어서 &#8216;정답&#8217;이라고 할 수는 없습니다. 하지만 UI 개발자들이 한 번 쯤은 고민했던(또는 해야 할) 주제들의 FAQ 목록 입니다. 저와 다른 의견을 가지고 계시거나 또는 제가 다루지 않았던 주제들에 관한 질문을 환영 합니다. 여러분의 댓글이 아마도 이 문서를 보완하는데 크게 도움이 될 것 같습니다.</p>
<ol>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section1">문서형(DTD)을 꼭 선언해야 하나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section2">문서형(DTD)의 종류가 많던데 권장하는 것은 무엇입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section3">XHTML의 문법은 HTML과 비교해서 무엇이 다른가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section4">HTML과 XHTML 가운데 어떤  문서형(DTD)을 사용하는 것이 좋을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section5">문자셋(charset)으로 UTF-8을 권장하는 이유는 무엇인가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section6">휴먼 랭귀지(human language)가 무엇인가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section7">문서의 제목 &lt;title&gt;&#8230;&lt;/title&gt;을 어떻게 작성하는것이 가장 좋을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section8">의미론적 마크업(semantic markup)이란 무엇입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section9">제목 요소 &lt;hx&gt;&#8230;&lt;/hx&gt;는 어떻게 작성하는 것이 가장 좋을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section10">의미론적 마크업을 잘 하는 방법이 있을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section11">논리적인 순서란 어떤 것입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section12">논리적 마크업을 위해서 화면 배치를 위한 &lt;table&gt;&#8230;&lt;/table&gt;을 사용하지 않기로 했습니다. 이제 무엇으로 마크업 하나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section13">논리적인 마크업 예제를 한번 볼 수 있을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section14">컬럼 구조 레이아웃을 위한 CSS 기법이 궁금합니다.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section15">&#8216;id/class&#8217; 선택자 사용 기준은 무엇이고 어떻게 네이밍 하는것이 좋을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section16">이미지 대체 텍스트 속성 alt=&quot;*&quot; 어떻게 작성하는 것이 가장 좋은가요? title=&quot;*&quot; 속성과는 어떻게 다르죠?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section17">이미지에 포함된 텍스트의 양이 너무 많습니다. 어떻게 처리하죠?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section18">모두가 이용할 수 있는 longdesc 텍스트를 제공하고 싶습니다.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section19">웹 브라우저 호환성을 유지하기 위한 CSS 기법은 무엇이 있나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section20">IR(Image Replacement) 기법이란 무엇입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section21">Image Sprite 기법이란 무엇입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section22">동영상 대체 콘텐츠는 무엇이고 어떻게 처리해야 합니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section23">프레임셋 &lt;frameset&gt;&#8230;&lt;/frameset&gt;의 문제는 무엇인가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section24">프레임셋 &lt;frameset&gt;&#8230;&lt;/frameset&gt;을 사용한다면 무엇을 주의해야 하나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section25">서버와 데이터를 주고 받기 위해 내용 없는  빈 &lt;iframe&gt;&#8230;&lt;/iframe&gt;을 사용하고 있습니다. 이런 빈 프레임에도 title=&quot;*&quot; 속성을 이용해서 설명해야 하나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section26">모든 기능을 키보드로 이용할 수 있도록 하려면 무엇을 주의해야 하나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section27">onclick과 onkeypress, onkeydown, onkeyup 이벤트 헨들러를 함께 사용하면 안되는 이유가 무엇입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section28">&lt;a&gt;&#8230;&lt;/a&gt; 요소를 마크업 할 때  href 속성의 값으로 &quot;#&quot;을 사용하면 안되나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section29">&lt;button type=&quot;button&quot;&gt;&#8230;&lt;/button&gt; 요소의 의미와 사용법을 알려주세요.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section30">&lt;button type=&quot;button&quot;&gt;&#8230;&lt;/button&gt; 요소의 디자인을 CSS로 제어할 수 없나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section31">CSS 기반의 가변폭 텍스트 버튼을 만들고 싶습니다.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section32">키보드의 논리적인 접근 순서를 위해 tabindex=&quot;*&quot; 속성을 사용해도 될까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section33">건너뛰기 링크는 어떻게 구현하는 것이 가장 좋을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section34">자바스크립트를 이용한 팝업 띄우기는 무엇이 문제인가요? 어떻게 하면 되죠?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section35">데이터 테이블 &lt;table&gt;&#8230;&lt;/table&gt;을 의미있고 논리적으로 작성하는 방법은 무엇인가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section36">탭 메뉴 형태의 네비게이션은 무엇으로 어떻게 마크업 해야 합니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section37">&lt;label&gt;&#8230;&lt;/label&gt; 요소는 어떻게 사용하나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section38">플래시 &lt;object&gt;&#8230;&lt;/object&gt; 네비게이션의 문제는 무엇인가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section39">겸손한 자바스크립트(Unobtrusive JavaScript)란 무엇입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section40">Ajax의 접근성 문제는 무엇입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section41">시각 장애인을 위하여 CSS { display:none } 처리된 콘텐츠를 제공하는 것이 왜 나쁜가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section42">CSS Framework이란 무엇 입니까?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section43">드림위버와 같은 위지윅(WYSIWYG) 도구는 웹 표준이나 접근성을 지원 하나요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section44">드림위버는 너무 무거운 프로그램 아닌가요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section45">CSS 파일을 부를 때 &lt;link /&gt;와 @import의 차이는 뭔가요? 어떤 방법이 더 좋죠?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section46">인쇄용 CSS를 어떻게 작성하는 것이 좋을까요?</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section47">IE 6 브라우저는 #id.class 다중 선택자 조합을 지원하지 않습니다.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section48">IE 6 브라우저는 .class.class 다중 선택자 조합 일부를 지원하지 않습니다.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section49">IE 6 브라우저는 float 처리된 요소의 margin을 두 배로 처리하는 버그가 있습니다.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section50">IE 6~7 브라우저는 float된 요소의 문자를 복사하는 버그가 있습니다.</a></li>
<li><a href="http://naradesign.net/open_content/lecture/wp/#section51">IE 6~7 브라우저는 float된 요소 주변에 등장하는 absolute 요소를 표시하지 않는 버그가 있습니다.</a></li>
</ol>
<p>허걱 벌써 다 보셨나요? 저는 몇일 걸렸는데. ㅡㅡ;</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2009/09/07/1040/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>XE CSS Framework for Layout.</title>
		<link>http://naradesign.net/wp/2009/07/17/998/</link>
		<comments>http://naradesign.net/wp/2009/07/17/998/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 11:34:11 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[CSS Framework]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=998</guid>
		<description><![CDATA[
&#8216;XE CSS Framework for Layout&#8217; 이란 XE를 이용하여 제작되는 웹 페이지들의 다양한 레이아웃 요소들을 &#8216;이해하기 쉽고, 유연하게 변형이 가능하며, 효과적으로 생성&#8217;하기 위한 HTML과 CSS코드 작성 규칙 입니다. CSS 프레임웍은 다양한 컬럼 구조의 화면 배치와 레이아웃의 성질에 직접적으로 관여하여 스킨 제작자들을 도울 것입니다.


레이아웃 성질의 이해.


레이아웃의 성질이란 쉽게 말해서 레이아웃이 고정폭인지, 가변폭인지, 또는 이 둘을 적절하게 섞은 [...]]]></description>
			<content:encoded><![CDATA[<div class="eArea xe_content xe_dr_txt">
<p>&#8216;XE CSS Framework for Layout&#8217; 이란 <a href="http://xpressengine.com">XE</a>를 이용하여 제작되는 웹 페이지들의 다양한 레이아웃 요소들을 &#8216;이해하기 쉽고, 유연하게 변형이 가능하며, 효과적으로 생성&#8217;하기 위한 HTML과 CSS코드 작성 규칙 입니다. CSS 프레임웍은 다양한 컬럼 구조의 화면 배치와 레이아웃의 성질에 직접적으로 관여하여 스킨 제작자들을 도울 것입니다.</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247812799091">레이아웃 성질의 이해.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>레이아웃의 성질이란 쉽게 말해서 레이아웃이 고정폭인지, 가변폭인지, 또는 이 둘을 적절하게 섞은 혼합폭인지를 의미하는 용어 입니다.</p>
</div>
<div class="eArea xe_content xe_dr_list">
<ul>
<li><span>고정폭 레이아웃(Fixed Lauout) : 모든 레이아웃 요소들의 너비가 절대 단위(px)로 지정된 레이아웃을 말합니다.</span></li>
<li><span>가변폭 레이아웃(Liquid Lauout) : 모든 레이아웃 요소들의 너비가 상대 단위(%)로 지정된 레이아웃을 말합니다.</span></li>
<li><span>혼합폭 레이아웃(Hybrid Lauout) : 레이아웃 너비에 상대 단위(%)와 절대 단위(px)가 함께 사용된 것을 말합니다.</span></li>
</ul>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247815928349">HTML 마크업 구조의 이해.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>XE를 통해 제작되는 다양한 웹 페이지들은 아주 오래전에 제작된 모듈 페이지들을 제외하고 모두 다음과 같은 구조를 지니고 있습니다.</p>
<p>&lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">xe</span></span>&quot; class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">fixed </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">liquid</span></span><span style="color: rgb(255, 0, 0);"> </span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">hybrid</span></span><span style="color: rgb(255, 0, 0);"> </span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">aLeft</span></span><span style="color: rgb(255, 0, 0);"> </span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">aRight</span></span>&quot;&gt;<br />
&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">container</span></span>&quot; class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">c</span></span> | <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">ce </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">ec </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">cee </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">ece </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">eec</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">header</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;&lt;/h1&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">body</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">content</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension e1</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension e2</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">footer</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;address&gt;&lt;/address&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp; &lt;/div&gt;<br />
&lt;/div&gt;</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247815919630">DOM 계층 구조의 이해.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>CSS 또는 DOM을 이용해서 화면 배치를 직접 제어하고자 할 때 아래와 같은 선택자를 이용할 수 있습니다.</p>
</div>
<div class="eArea xe_content xe_dr_list">
<ul>
<li><span>#xe .fixed | .liquid | .hybrid | .aLeft | .aRight </span>
<ul>
<li><span>#container .c | .ce | .ec | .cee | .ece | .eec </span>
<ul>
<li><span>#header </span>
<ul>
<li><span>h1 </span></li>
<li><span>.extension </span></li>
</ul>
</li>
<li><span>#body </span>
<ul>
<li><span>#content </span></li>
<li><span>.extension.e1 </span></li>
<li><span>.extension.e2 </span></li>
</ul>
</li>
<li><span>#footer </span>
<ul>
<li><span>.extension </span></li>
<li><span>address</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247816049297">예약된 CSS 선택자 이름.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>아 래 표에 명시된 CSS 선택자는 프레임웍에서 사용하는 예약된 이름들 입니다. 따라서 스킨 개발자는 XE에서 아래와 같은 선택자를 이용하되 새로운 선택자를 생성하고자 할 때 동일한 이름을 생성하지 않도록 유념해야 합니다. 전혀 다른 쓰임을 지닌 같은 이름의 선택자가 추가로 발생하는 경우 화면이 깨질 것입니다.</p>
</div>
<div class="eArea xe_content xe_dr_txt">
<table cellspacing="0" border="1" id="layoutTable" class="displayOn">
<thead>
<tr>
<th scope="col">Selector</th>
<th scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">#xe</th>
<td>&#8216;body&#8217; 요소의 최초의 자손으로써 현재의 layout이 XE의 layout용 CSS Framework을 사용하고 있다는 것을 의미 합니다.</td>
</tr>
<tr>
<th scope="row">.fixed | .liquid | .hybrid</th>
<td>&#8216;#xe&#8217; 요소에 함께 선언되는 클래스로써 현재의 layout이 어떤 성질(고정폭, 가변폭, 혼합폭)을 갖는지를 클래스 이름으로 정의 합니다. 스스로는 아무 속성이 없지만 클래스로 하여금 자식 &#8216;#container&#8217;가 다양한 성질을 가질 수 있도록 제어합니다.</td>
</tr>
<tr>
<th scope="row">.aLeft | .aRight</th>
<td>&#8216;#xe&#8217; 요소에 함께 선언되는 클래스로써 현재 layout에 대한 수평 정렬을 제어 합니다. 스스로는 아무 속성이 없지만 클래스로 하여금 자식 &#8216;#container&#8217;가 &#8216;좌/우&#8217;로 정렬 될 수 있도록 제어합니다. 사용하지 않으면 가운데로 정렬 됩니다.</td>
</tr>
<tr>
<th scope="row">#container</th>
<td>&#8216;#xe&#8217; 요소의 첫 번째 자손으로써 &#8216;#header, #body, #footer&#8217;를 자식으로 두며 현재 레이아웃의 너비와 성질(고정폭, 가변폭)에 대한 속성을 지니고 있습니다.</td>
</tr>
<tr>
<th scope="row">.c</th>
<td>&#8216;#content&#8217;를 의미하며 &#8216;#content&#8217; 영역을 하나의 컬럼으로 배치 합니다. &#8216;.c&#8217; 클래스가 사용된 경우 &#8216;.extension&#8217; 요소들은 컬럼이 되지 못하고 아래쪽에 흐릅니다.</td>
</tr>
<tr>
<th scope="row">.ce | .ec</th>
<td>2컬럼 레이아웃 요소들의 수평 배치 순서를 결정하는 클래스 입니다. 각각 &#8216;c=#content,  e=.extension&#8217;을 의미합니다.</td>
</tr>
<tr>
<th scope="row">.cee |  .ece | .eec</th>
<td>3컬럼 레이아웃 요소들의 수평 배치 순서를 결정하는 클래스 입니다. 각각 &#8216;c=#content,  e=.extension&#8217;을 의미합니다.</td>
</tr>
<tr>
<th scope="row">#header</th>
<td>현재 페이지의 &#8216;가장 큰 제목<sup>h1</sup>&#8216;이 들어가며 보통은 웹 사이트의 제목이 출력되고 상단에 배치 됩니다.</td>
</tr>
<tr>
<th scope="row">#body</th>
<td>현재 페이지의 본문인 &#8216;#content&#8217;와 네비게이션 또는 확장 요소인 &#8216;.extension&#8217;을 자손으로 두고 있습니다.</td>
</tr>
<tr>
<th scope="row">#footer</th>
<td>&#8216;저작자 정보<sup>address</sup>&#8216; 또는 웹 사이트 이용안내등 부가 콘텐츠가 포함 되며 보통 하단에 배치 됩니다.</td>
</tr>
<tr>
<th scope="row">#content</th>
<td>&#8216;본문&#8217;으로써 다양한 형태의 정보들이 포함되며 &#8216;.section&#8217; 요소를 자손으로 지닐 수 있습니다.</td>
</tr>
<tr>
<th scope="row">.extension</th>
<td>현재 사이트를 탐색하기 위한 &#8216;네비게이션&#8217; 또는 &#8216;확장&#8217; 으로써 &#8216;.section&#8217; 요소를 자손으로 지닐 수 있습니다.</td>
</tr>
<tr>
<th scope="row">.e1 | .e2</th>
<td>&#8216;#body&#8217;의 자손인 &#8216;.extension&#8217; 클래스와 동일한 요소에  적용되어 있는 클래스로써 두 개의 &#8216;.extension&#8217;이 각자 다른 배치를 가질 수 있도록 식별하는 역할을 합니다.</td>
</tr>
<tr>
<th scope="row">.section</th>
<td>내용을 더욱 의미있는 단위로 작게 구분할 필요가 있을 때 어느 곳에서든 사용합니다. 하나인 경우 생략할 수 있고 두 덩어리 이상을 구분할 필요가 있을 때 반드시 사용 합니다.</td>
</tr>
</tbody>
</table>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247820676671">CSS 프레임웍 파일과 프레임웍을 이용하여 구현된 예제.</h3>
</div>
<ul>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/">CSS 프레임웍을 이용하여 간단하게 화면의 배치와 성질을 바꿀 수 있도록 구현한 예제</a>.</li>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/layoutTemplate.html">HTML 보기</a>.</li>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/css/layout.css">CSS 프레임웍 파일</a>.</li>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/css/layout@style.css">CSS 프레임웍 파일에 사용자 정의 스타일 코드를 추가(override)한 파일</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2009/07/17/998/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>
