CSS Image Replacement(IR기법)  

의미가 포함되어 있는 image를 배경으로 표현하고, 그에 상응하는 내용을 text로 전경에 기입하는 방법으로,
시각이 있는 사용자는 이미지로 처리된 화면을 볼 수 있지만 "화면 낭독기를 사용하는 시각 장애인, CSS제거 및 인쇄"시에는 문자에 접근하거나 문자를 볼 수 있는 형태로 설계 하는 기법을 말한다

 

첫번째

h1#technique-one { width: 250px; height: 25px; background-image: url(logo.gif)}
h1#technique-one span{display: none;}


<h1 id="technique-one">
 <span>CSS-Tricks</span>
</h1> 

 

두번째

h1.technique-two {width: 2350px; height: 75px; background: url("images/header-image.jpg") top right; margin: 0 0 0 -2000px;}


<h1 class="technique-two">
 CSS-Tricks
</h1>

 

세번째

h1.technique-three {width: 350px; height: 75px; background: url("images/header-image.jpg"); text-indent: -9999px;}

 

<h1 class="technique-three">
 CSS-Tricks
</h1>

 

네번째

h1.technique-four {width: 350px; height: 75px; background: url("images/header-image.jpg"); text-indent: -9999px;}

 

<h1 class="technique-four">
<a href="#">
<img src="images/header-image.jpg" alt="CSS-Tricks" />
</a>
</h1>

 

다섯번째

h1.technique-five {width: 350px; height: 75px; background: url("images/header-image.jpg") }

h1.technique-five span {display: none}

 

<h1 class="technique-five">
<img src="images/blank.gif" alt="CSS-Tricks" />
<span>CSS-Tricks</span>
</h1>

 

여섯번째

h1.technique-six {width: 350px; padding: 75px 0 0 0; height: 0;  background: url("images/header-image.jpg")

 no-repeat;  overflow:hidden;}

 

<h1 class="technique-six">
 CSS-Tricks
</h1>

 

일곱번째

h1.technique-seven {width: 350px; height: 75px; background: url("images/header-image.jpg") no-repeat }
h1.technique-seven span {display: block; width: 0;  height: 0;  overflow: hidden}

 

<h1 class="technique-seven">
<span>CSS-Tricks</span>
</h1>

 

여덣번째

h1.technique-eight {width: 350px; height: 75px; position: relative}

h1.technique-eight span {background: url("images/header-image.jpg"); position: absolute; width: 100%; height: 100%}

 

<h1 class="technique-eight">
<span></span>CSS-Tricks
</h1>

 

아홉번째

h1.technique-nine {width: 350px; height: 75px; background: url("images/header-image.jpg") no-repeat; 

font-size: 1px;  color:white}

 

<h1 class="technique-nine">
CSS-Tricks
</h1>

 

 

그밖에

- 텍스트 요소에 z-index 음수 값을 주어 이미지 뒤로 숨기는 방법
- visibility:hidden

'Programming > HTML' 카테고리의 다른 글

href=# 대안법  (0) 2013.03.12
웹 표준과 웹 접근성  (0) 2013.02.26
시맨틱한 마크업을 위한 HTML5요소  (0) 2013.02.26
시맨틱 마크업  (0) 2013.02.26
[HTML5] 새로운 요소  (0) 2013.02.24

흔히들 <a href="#" onclick="...">을 사용하곤 한다.

이렇게 사용할 경우 최상단으로 이동하기 때문에 페이지 위치가 바뀌어 버린다.

이같은 오류를 해결할 수 있는 방법에는 3가지가 있다.


1. <a href="javascript:void(0);" onclick="...">

2. <a href="javascript:;" onclick="...">

3. <a href="링크주소" onclick="window.open(this.href, '', ''); return false;">

'Programming > HTML' 카테고리의 다른 글

Image Replacement(IR기법)  (0) 2013.03.26
웹 표준과 웹 접근성  (0) 2013.02.26
시맨틱한 마크업을 위한 HTML5요소  (0) 2013.02.26
시맨틱 마크업  (0) 2013.02.26
[HTML5] 새로운 요소  (0) 2013.02.24
웹표준(Web Standard)이란?
'웹에서 표준적으로 사용되는 기술이나 규칙'을 의미하며, 이는 특정 브라우저에서만 사용되는 비 표준화된 기술은 배제하고 W3C의 토론을 통해 나온 권고안(recomendation)을 사용하는 것을 말하며, 웹 문서의 구조와 표현, 그리고 동작을 구분해서 사용하는 것을 뜻한다.

원칙 1. 인식의 용이성(Perceivable): 모든 콘텐츠는 사용자가 인식할 수 있어야 한다.
1.1 (대체 텍스트) 텍스트 아닌 콘텐츠에는 대체 텍스트를 제공해야 한다. 1.1.1(적절한 대체 텍스트 제공) 텍스트 아닌 콘텐츠는 그 의미나 용도를 이해할 수 있도록 대체 텍스트를 제공해야 한다.
1.2(멀티미디어 대체 수단) 동영상, 음성 등 멀티미디어 콘텐츠를 이해할 수 있도록 대체 수단을 제공해야 한다. 1.2.1(자막 제공) 멀티미디어 콘텐츠에는 자막, 원고 또는 수화를 제공해야 한다.
1.3(명료성) 콘텐츠는 명확하게 전달되어야 한다. 1.3.1(색에 무관하나 콘텐츠 인식) 콘텐츠는 색에 관계없이 인식될 수 있어야 한다.
1.3.2(명확한 지시 사항 제공) 지시 사항은 모양, 크기, 위치, 방향, 색, 소리 등에 관계없이 인식될 수 있어야 한다.
1.3.3(텍스트 콘텐츠의 명도 대비) 텍스트 콘텐츠와 배경 간의 명도 대비는 4.5대 1 이상이어야 한다.
1.3.4(배경음 사용금지) 자동으로 재생되는 배경음을 사용하지 않아야 한다.

원칙 2. 운용의 용이성(Operable): 사용자 인터페이스 구성 요소는 조작 가능하고 내 비게이션할 수 있어야 한다.
2.1(키보드 접근성) 콘텐츠는 키보드로 접근할 수 있어야 한다. 2.1.1(키보드 사용 보장) 모든 기능은 키보드만으로도 사용할 수 있어야 한다.
2.1.2(초점 이동) 키보드에 의한 초점은 논리적으로 이동해야 하며 시각적으로 구별할 수 있어야 한다.
2.2(충분한 시간 제공) 콘텐츠를 읽고 사용하는 데 충분한 시간을 제공해야 한다. 2.2.1(응답 시간 조절) 시간 제한이 있는 콘텐츠는 응답시간을 조절할 수 있어야 한다.
2.2.2(정지 기능 제공) 자동으로 변경되는 콘텐츠는 움직임을 제어할 수 있어야 한다.
2.3(광과민성 발작 예방) 광과민성 발작을 일으킬 수 있는 콘텐츠를 제공하지 않아야 한다. 2.3.1(깜빡임과 번쩍임 사용 제한) 초당 3~50회 주기로 깜빡이거나 번쩍이는 콘텐츠를 제공하지 않아야 한다.
2.4(쉬운 네비게이션) 콘텐츠는 쉽게 네비게이션 할 수 있어야 한다. 2.4.1(반복 영역 건너뛰기) 콘텐츠의 반복 되는 영역은 건너뛸 수 있어야 한다.
2.4.2(제목 제공) 페이지, 프레임, 콘텐츠 블록에는 적절한 제목을 제공해야 한다.
2.4.3(적절한 링크 텍스트) 링크 텍스트는 용도나 목적을 이해할 수 있도록 제공해야 한다.

원칙 3. 이해의 용이성(Understandable): 콘텐츠는 이해할 수 있어야 한다.
3.1(가독성) 콘텐츠는 읽고 이해하기 쉬워야 한다. 3.1.1(기본 언어 표시) 주로 사용하는 언어를 명시해야 한다.
3.2(예측 가능성) 콘텐츠의 기능과 실행결과는 예측 가능해야 한다. 3.2.1(사용자 요구에 따른 실행) 사용자가 의도하지 않은 기능(새 창, 초점 변화 등)은 실행되지 않아야 한다.
3.3(콘텐츠의 논리성) 콘텐츠는 논리적으로 구성해야 한다. 3.3.1(콘텐츠의 선형화) 콘텐츠는 논리적인 순서로 제공해야 한다.
3.3.2(표의 구성) 표는 이해하기 쉽게 구성해야 한다.
3.4(입력 도움) 입력 오류를 방지하거나 정정할 수 있어야 한다. 3.4.1(레이블 제공) 입력 서식에는 대응하는 레이블을 제공해야 한다.
3.4.2(오류 정정) 입력 오류를 정정할 수 있는 방법을 제공해야 한다.

원칙 4. 견고성(Robust): 웹 콘텐츠는 미래의 기술로도 접근할 수 있도록 견고하게 만 들어야 한다.
4.1(문법 준수) 웹 콘텐츠는 마크업 언어의 문법을 준수해야 한다. 4.1.1(마크업 오류 방지) 마크업 언어의 요소는 열고 닫음, 중첩 관계 및 속성 선언에 오류가 없어야 한다.
4.2(웹 어플리케이션 접근성) 웹 어플리케이션은 접근성이 있어야 한다. 4.2.1(웹 어플리케이션 접근성 준수) 콘텐츠에 포함된 웹 어플리케이션은 접근성이 있어야 한다.


웹 콘텐츠 접근성 지침(WCAG)

  • 인지성(Perceivable) : 정보와 사용자 인터페이스 요소는 그들이 인지할 수 있도록 사용자에게 표시될 수 있어야 한다.
    • 1. 모든 텍스트가 아닌 콘텐츠에 대체 텍스트를 사람들이 원하는 인쇄, 점자, 음성, 기호 또는 간단 언어 등과 같은 형태로 제공해야 한다.
    • 2. 시간을 바탕으로 한 미디어에 대한 대안을 제공해야 한다.
    • 3. 정보와 구조의 손실 없이 콘텐츠를 다른 방식(예를 들면 더욱 간단한 형태로)들로 표현할 수 있어야 한다.
    • 4. 사용자들이 보다 쉽게 보고 들을 수 있는 전경에서 배경을 분리한 콘텐츠를 만들어야 한다.
  • 운용성(Operable) : 사용자 인터페이스 요소와 탐색은 운용 가능해야 한다.
    • 1. 키보드로 모든 기능을 사용할 수 있도록 해야 한다.
    • 2. 읽기 및 콘텐츠를 사용하는 사용자에게 충분한 시간을 제공해야 한다.
    • 3. 알려진 방법으로 발작을 일으킬 수 있는 콘텐츠를 디자인하지 않아야 한다.
    • 4. 사용자가 탐색하고, 콘텐츠를 찾고 그들이 어디에 위치하고 있는지를 알 수 있도록 도와주는 방법을 제공해야 한다.
  • 이해성(Understandable) : 정보와 사용자 인터페이스 운용은 이해할 수 있어야 한다.
    • 1. 텍스트 콘텐츠를 판독하고 이해할 수 있도록 만들어야 한다.
    • 2. 웹 페이지의 탑재와 운용을 예측 가능한 방법으로 제작해야 한다.
    • 3. 사용자의 실수를 방지하고 수정할 수 있도록 도와야 한다.
  • 내구성(Robust) : 콘텐츠는 보조 기술을 포함한 넓고 다양한 사용자 에이전트에 의존하여 해석될 수 있도록 충분히 내구성을 가져야 한다.
    • 1. 보조 기술을 포함한 현재 및 미래의 사용자 에이전트의 호환성을 극대화해야 한다.

'Programming > HTML' 카테고리의 다른 글

Image Replacement(IR기법)  (0) 2013.03.26
href=# 대안법  (0) 2013.03.12
시맨틱한 마크업을 위한 HTML5요소  (0) 2013.02.26
시맨틱 마크업  (0) 2013.02.26
[HTML5] 새로운 요소  (0) 2013.02.24
이름

내용

header

상단(header)에 사용

article

내용(content)에 사용

footer

하단(footer)에 사용

nav

네비게이션이나 메뉴에 사용

section

내용을 나눌 때 사용

aside

사이드바에 사용

figure

특정한 요소의 제목에 사용


'Programming > HTML' 카테고리의 다른 글

Image Replacement(IR기법)  (0) 2013.03.26
href=# 대안법  (0) 2013.03.12
웹 표준과 웹 접근성  (0) 2013.02.26
시맨틱 마크업  (0) 2013.02.26
[HTML5] 새로운 요소  (0) 2013.02.24

현재 웹상에서는 방대한 정보와 필요한 정보를 추출, 해석, 가공하는 방법이 없기 때문에 불필요한 정보가 검색된다.

시맨틱 마크업은 2001년 팀 버너스리 등에 의해 정립화된 것으로 컴퓨터가 처리할 수 있게 온톨로지 형태로 표현한 것으로 검색로봇이 의미를 잘 가져갈 수 있도록 홈페이지를 구조적으로 마크업 하는 방법이다.

HTML태그를 이용해 내용이 담고있는 의미가 무엇인지 파악하며 마크업해야 시맨틱한 웹을 만들 수 있다.

RSS가 대표적인 예이다.


   * 온톨로지 형태 : 사람들이 세상에 대해 보고 듣고 느낀 것을 서로 간의 토론을 통해 합의를 이룬 것


ex))


<h1>테스트 1</h1>

<p>테스트 1-1</p>

<p>테스트 1-2</p>

<p>테스트 1-3</p>

위의 마크업은 시맨틱하지 못한 마크업이다.

시각장애인을 위한 스크린리더에서 제목과 내용의 의미를 제대로 파악하지 못하게 된다.


<h1>테스트1</h1>

<ul>

<li>테스트1-1</li>

<li>테스트1-2</li>

<li>테스트1-3</li>

</ul>

위의 마크업이 시맨틱 한 마크업이다.

스크린리더에서의 의미파악 뿐만 아니라 시각적인 효과도 준다.

'Programming > HTML' 카테고리의 다른 글

Image Replacement(IR기법)  (0) 2013.03.26
href=# 대안법  (0) 2013.03.12
웹 표준과 웹 접근성  (0) 2013.02.26
시맨틱한 마크업을 위한 HTML5요소  (0) 2013.02.26
[HTML5] 새로운 요소  (0) 2013.02.24

article

 - 문서나 페이지, 사이트에서 독립적으로 배포 혹은 재사용(예를 들어 투고 같은)할 수 있는 섹션을 나타낸다.

<article>

<header>

<h1>삶에서 가장 중요한 원칙</h1>

</header>

<p>

당신 주변 어디에라도 마이크가 있다면 그 마이크는 열띤 토론을 이끌어 내는 것이고 당신이 하는 말을 전부 전세계로 퍼뜨리고 있다 생각해야 합니다. 농담이 아니에요.

</p>

<footer>

show comments

</footer>

</article>


aside

 - 주위 내용과 접점을 이루는 섹션을 나타내며 주위 내용과는 분리된 것으로 간주할 수 있다. aside 요소가 나타내는 섹션은 출력하였을 때 사이드바 형태로 표현되는 것이 일반적이다.

<aside>

<h1>스위스</h1>

<p>

스위스, 지질학적으로 유럽의 중심에 있으며 육지로 둘러싸인 이 나라는 유럽 여러 조약의 승인국이지만 지정학적 단체인 EU에 가입하였습니다.

</p>

</aside>


audio

 - 소리 또는 오디오를 나타낸다.

<audio controls src="링크">

</audio>


<audio controls>

<source src="링크" type="audio/mp3">

<sourse src="링크2" type="audio/ogg">

</audio>


address

 - article 또는 body요소의 연락처 정보를 나타낸다.

<footer>

<address>

서울시 종로구 000동

</address>

<p>copyright 2013 example</p>

</footer>


canvas

 - 해상도에 의존하는 비트맵 캔버스와 스크립트를 제공한다. 이러한 캔버스는 그래프, 게임 그래픽, 기타 비주얼 이미지들을 즉석에서 그려내는 용도로 사용될 수 있다.

<canvas width="200" height="200" style="border:1px solid #aaa">

사각형이 그려집니다

</canvas>


command

 - 사용자가 실행할 수 있는 명령을 나타낸다.

<menu type="menu">

<command type="radio" radiogroup="alignment" checked label = "left" icon="icon.png">

</menu>


datalist

 - 다른 컨트롤에서 사용할 수 있도록 미리 정의된 옵션 집합을 나타낸다. 요소의 내용은 미리 정의되어진 옵션들을 나타내는 option요소와 섞여서 구형 사용자 에이전트를 위한 폴백 요소를 나타낸다.

<input list="opt">

<datalist id="opt">

<option value="1">옵션1</option>

<option value="2">옵션2</option>

</datalist>


details

 - 사용자가 추가적인 정보를 얻거나 컨트롤할 수 있는 노출된 위젯을 나타낸다.

<section>

<h1>테스트임</h1>

<details>

<summary>테스트입니다!</summary>

<ul>

<li>테스트1</li>

<li>테스트2</li>

</ul>

</details>

</section>


embed

 - 플러그인이 설치된, 플러그인이 필요한 외부 어플리케이션을 동작할 때 사용한다.

<embed src="링크" quality="high">

위의 embed와 아래의 object의 결과는 같음

<object data="링크">

<param name="quality" value="high">

<object>


figcaption

 - 자신의 부모인 figure 요소의 나머지 내용들에 대한 캡션, 혹은 제목을 나타낸다.

figure

 - 이미지, 그래프, 사진, 예제 코드, 비디오, 일반 텍스트등을 하나로 묶어 블록을 형성하고 캡션을 포함시켜 서로의 관계를 명확히 구조화 시킨다. 반드시 메인이 되는 문서 안에 삽입될 필요는 없으며 페이지 옆이나 참조용 별도 페이지등에 넣어도 크게 상관없는 내용을 지정할 수 있다.

<figure>

<img src="eating.jpg" alt="밥먹는 이미지" />

<figcaption>밥먹는 이미지 입니다</figcaptio>

</figure>


footer

 - 작성자가 누구인지, 연관된 문서에 대한 링크, 저작권 정보, 기타 흡사한 정보들을 담는다.

<footer>

<p>copyright 2013 example</p>

</footer>


header

 - 소개 또는 네비게이션 목적의 도우미 그룹

<article>

<header>

<h1>삶에서 가장 중요한 원칙</h1>

</header>

<p>

당신 주변 어디에라도 마이크가 있다면 그 마이크는 열띤 토론을 이끌어 내는 것이고 당신이 하는 말을 전부 전세계로 퍼뜨리고 있다 생각해야 합니다. 농담이 아니에요.

</p>

</article>


hgroup

 - heading태그 묶은 그룹, 섹션의 제목을 나타낸다.

<hgroup>

<h1>삶에서 가장 중요한 원칙</h1>

<h2>첫번째_행복</h2>

</hgroup>


keygen

 - 키 쌍을 만들어내는 컨트롤을 나타낸다.

<form action="주소" method="post">

<p><keygen name="key"></p>

<p><input type="submit" value="키 전송하기"></p>

</form>


mark

 - 형광펜으로 특정단어들을 칠해서 강조하는 효과와 비슷하며 문장내의 중요한 부분에 강조효과를 넣는 <em>, <strong>과는 다른 개념이다. 시각적 주목효과 만을 노리며 스타일이 정의되어 있지 않으므로 직접 효과를 작성한다.

<p>

요즘 너무너무 <mark>행복</mark>해!

</p>


menu

 - 커맨드 목록을 나타낸다.

<menu type="menu">

<li>

<menu lable="menu1">

<button type="button">menu1-1</button>

<button type="button">menu1-2</button>

</menu>

</li>

<li>

<menu lable="menu2">

<button type="button">menu2-1</button>

<button type="button">menu2-2</button>

</menu>

</li>

</menu>


meter

 - 알려진 범위 내에서의 스칼라 측정 또는 분포비율을 나타낸다.

<ul>

<li>test1</li><meter min=0 max=30 value=17 title="test">17/30</meter>

</ul>


nav

 - 다른 페이지 또는 동일 페이지의 다른 부분으로 이어주는 섹션, 즉 네비게이션 링크로 구성된 섹션을 나타낸다.

<body>

<h1>플레이그라운드</h1>

<nav>

<ul>

<li>홈</li>

<li>사이트맵</li>

</ul>

</nav>

<article>

<header>

<h1>플레이그라운드 제목</h1>

</header>

</article>

<nav>

<ul>

<li>메뉴1</li>

<li>메뉴2</li>

</ul>

</nav>

</body>


output

 - 계산의 결과를 나타낸다.

<form action="링크" method="get">

<input type="number" name="a" step="any"> +

<input type="number" name="b" step="any"> =

<output onforminput="value = a.valueAsNumber + b.valueAsNumber">답</output>

</form>


progress

 - 작업의 진척도를 나타낸다. 진척도는 아래 두가지로 구분된다.

   1. 작업이 수행되고 있지만 작업이 완료되기 전에는 얼마나 많은 일이 남아있는지 알 수 없는 모호한 경우

   2. 진척도가 0부터 최대값 사이의 숫자로서 표현될 수 있는 경우

<section>

<h1>Progress Test</h1>

<p>

<progress id="test" max="100">0%<progress>

</p>

</section>


rp

 - 루비 주석을 지원하지 않는 사용자 에이전트에서 루비 텍스트를 괄호로 둘러싸 표현하기 위해 사용한다.

rt

 - 루비 텍스트의 루비 주석을 나타낸다.

ruby

 - ruby가 부모, rt와 rp는 자식

<ruby>

<rt>あい</rt>

</ruby>

결과물 -> 

<ruby>

愛<rp>(</rp><rt>あい</rt><rp>)</rp>

</ruby>


section

 - 장이나 마디를 나타내는 요소로 표제와 이에 다른 컨텐츠를 정리하기 위한 요소. H태그 필수

<section>
    <h1>제목</h1>
</section>


source

 - 미디어 요소에서 사용할 수 있는 대체 미디어 자원을 제공한다.

<audio controls>

<source src="링크" type="audio/mp3">

<sourse src="링크2" type="audio/ogg">

</audio>


summary

 - 부모인 details요소에 자신을 제외한 내용이 있다면 그에 대한 요약, 캡션, 범례를 나타낸다.

<section>

<h1>테스트임</h1>

<details>

<summary>테스트입니다!</summary>

<ul>

<li>테스트1</li>

<li>테스트2</li>

</ul>

</details>

</section>


time

 - 날짜와 시간을 기계가 이해할 수 있게 명확하게 인코딩하면서 사람도 이해할 수 있게 노출시킨다.

YYYY-MM-DD(날짜) / HH:MM:SS(24시의 형태) 로 표기하고 동시에 나타낼 경우, 2013-01-30T12:00:00+09:00 와 같이 T문자로 구분하고 문자열 끝에 타임존 정보를 더하면 된다.

<time detetime="2013-02-26">2월 26일</time>


video

 - 비디오, 영화를 재생하기 위해 사용된다.

<video controls autoplay>

<source src="링크" type="video/avi">

<sourse src="링크2" type="video/ogg">

</video>


'Programming > HTML' 카테고리의 다른 글

Image Replacement(IR기법)  (0) 2013.03.26
href=# 대안법  (0) 2013.03.12
웹 표준과 웹 접근성  (0) 2013.02.26
시맨틱한 마크업을 위한 HTML5요소  (0) 2013.02.26
시맨틱 마크업  (0) 2013.02.26

+ Recent posts