Quantcast
Channel: Clearboth » XHTML
Viewing all articles
Browse latest Browse all 2

XHTML에서 속성(Attributes) 올바르게 사용하기

0
0

XHTML 1.0 이상의 Doctype 선언으로 웹표준화 작업을 거친 후 유효성 검증(Validation)을 실시했을 때 가장 많은 에러를 내는 것이 무엇인지 아는가? 바로 애트리뷰트(Attribute)에 겹따옴표나 홑따옴표를 하지 않거나, 값을 대문자로 했거나 하는 경우다.

XHTML 1.x(이하 XHTML) 과 HTML 4.01(이하 HTML 4) 사이의 변경점 가운데 애트리뷰트와 관련된 사항이 다섯가지나 되는데 다음과 같다.

엘리먼트와 애트리뷰트 이름들은 소문자로 되어야 한다.

HTML 4에서는 애트리뷰트의 대소문자 구별을 하지 않아도 되기( Attribute names are always case-insensitive) 때문에 XHTML 을 사용하는 경우 많은 비표준 제작자들이 실수를 하게 된다.

애트리뷰트 값들은 항상 따옴표에 들어가야 한다.

나와 함께 일하는 개발자님의 코딩을 구경하다보면 따옴표 없이 애트리뷰트의 값을 바로 지정하는 경우를 종종 볼 수 있는데 이 역시 HTML 4에서 따옴표의 생략을 허용하기 있었기 때문이다.

In certain cases, authors may specify the value of an attribute without any quotation marks. The attribute value may only contain letters (a-z and A-Z), digits (0-9), hyphens (ASCII decimal 45), periods (ASCII decimal 46), underscores (ASCII decimal 95), and colons (ASCII decimal 58). We recommend using quotation marks even when it is possible to eliminate them.

따옴표를 생략하는 경우에는 문자(a-z 와 A-Z), 숫자(0-9), 하이픈(-), 마침표(.), 밑줄(_), 콜론(:) 만으로 구성할 것을 요구하고 있다. 하지만 가능한 따옴표를 사용할 것을 추천하고 있고, 따옴표 안에 따옴표를 포함해야 하는 경우 겹따옴표 안에 홑따옴표를, 홑따옴표 안에 겹따옴표를 표기할수 있도록 하고 있다. 겹따옵표 안에 겹따옴표를 사용하거나 홑따옴표 안에 홑따옴표를 사용하는 경우에는 문자참조에서 엔티티로 치환해서 사용할 수 있도록 하고 있다.

애트리뷰트는 간략화 하지 않는다.

HTML 4에서는 애트리뷰트를 예약어처럼 사용하는 것들이 몇가지 있었다. compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer 등이 그러한 것들인데 XHTML에서는 이러한 약술을 허용하고 않고 있다. 따라서 다음과 같이 애트리뷰트와 값을 동일하게 적용해서 사용해야 문법이 맞게 된다.

<dl compact="compact">
<option value="0" selected="selected">

애트리뷰트 값들의 앞뒤 공간은 제거하고, 한 개 이상의 연속 공간은 한개의 공간으로 처리한다.

실수가 아니라면 그러하지 않겠지만 애트리뷰트 값 안에서 줄바꿈이나 의미 없는 여러개의 공백문자를 사용하지 말라는 내용이다. 대부분의 브라우저가 HTML 4 / XHTML 에서 이상 없이 보여주기는 하나 올바르지 않은 표현이고, 특별한 경우 오류를 유발할 수 있다.

‘id’와 ‘name’ 애트리뷰트를 갖는 엘리먼트들

웹퍼블리셔와 웹개발자 사이에 커뮤니케이션이 가장 중요한 이슈중 하나가 아닌가 싶다. HTML 4에서는 a, applet, frame, iframe, img, map 엘리먼트에 name 애트리뷰트를 정의하였지만 XHTML 1.0 에서는 사용을 지양하고 있으며 XHTML 1.0 Strict 모드와 1.1 이후로는 id 애트리뷰트만을 지원한다. 더불어 HTML Compatibility Guidelines에 포함된 내용중에 애트리뷰트의 값에 ‘&’의 사용을 주의할 것을 설명하고 있다. 앰퍼샌드(ampersand)라고 읽는 이 기호는 HTML 문서가 서버측 언어와 소통을 할 때 넘겨주는 파라메터(parameter)들을 연결하는데 사용된다. XHTML에서는 이 기호(&)의 사용을 대체문자인 ‘&amp;’로 할 것을 요구하고 있다.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles