메뉴들은 뭐로 마크업 해야 될까?

Q. 메뉴는 어떤 tag로 마크업을 해야 될까요~?

  1. form
  2. menu
  3. ul
  4. div

사실 이 문제에 정답! 은 없다. 뭐로 마크업을 하든 보여지는게 메뉴면 되니깐 말이다.
하지만 문서로써의 의미, 즉 semantic을 생각한다면 아마 menu가 정답에 가장 가깝지 않을까..?
“좋아! 이제부터 menu로 메뉴들을 마크업하자!!” 라고 한다면 한가지 알려주고 싶은게 한가지 있다.
그건 바로 menu보다는 ul을 쓰라는 것이다.

“아니 5초전에는 menu를 쓰라더니 지금은 ul을 쓰라고..?”
ul을 쓰라고 하는 이유는 w3가 menu 보다 ul을 사용하라고 강력하게 추천하기 때문이다.

  1. http://www.w3.org/TR/1999/REC-html401-19991224/struct/lists.html#edef-MENU
  2. http://www.w3.org/TR/1999/REC-html401-19991224/sgml/loosedtd.html#dir

첫번째 링크 타고 들어가면

We strongly recommend using UL instead of these elements.

이유는 모르겠지만 w3에서는 menu, dir 을 만들고 무지 후회를 했나보다.
(menu를 쓰는게 의미적으로 더 적합하다고 나는 생각하기 때문에, 이러한 w3입장은 솔직히 유감이다)
그렇다면 xhtml에서 menu를 빼지 않았을까..?

html 4.01 다음으로 애용되는 xhtml1-transitional 를 살펴보자
xhtml1-transitional 에는 menu가 있다. 아마도 4.01과의 호환성 때문에 존재하는것 같다

235 : <!ENTITY % lists “ul | ol | dl | menu | dir”>

520 : <!– single column list (DEPRECATED) –>
521 : <!ELEMENT menu (li)+>
522 : <!ATTLIST menu
523 :   %attrs;
524 :   compact     (compact)     #IMPLIED
525 :   >

그렇다면, xhtml 1.1에도 있을까..?
안타깝게도 xhtml1.1에는 없다. menu, dir은 사라지고 dl, dt, dd, ol, ul, li 만 존재한다

18 : <!– Lists
19 :
20 :        dl, dt, dd, ol, ul, li
21 :
22 :     This module declares the list-oriented element types
23 :     and their attributes.
24 : –>
25 :
26 : <!ENTITY % dl.qname  “dl” >
27 : <!ENTITY % dt.qname  “dt” >
28 : <!ENTITY % dd.qname  “dd” >
29 : <!ENTITY % ol.qname  “ol” >
30 : <!ENTITY % ul.qname  “ul” >
31 : <!ENTITY % li.qname  “li” >

얼마전 초안이 나온 html5는 어떨까..?

오오오옷!!!!!! menu 가 존재한다..!! 아주 반가운 소식이 아닐 수 가 없다!!🙂
더군다나 예전과는 완전 다른 입장인것 같다. 무슨소리냐 하면 html4에서는 ul을 쓸것을 강력하게 추천했지만, html5를 보면 메뉴를 써야하는 모든곳을 menu로 마크업이 가능하게 되었기 때문이다. (이 때문에 List element 가 아닌 Interactive elements에 있는건지도 모르겠다. 처음에 List element에 없어서..menu가 사라진줄 알고 실망했었다. 솔직히 아직까지 html5에서 말하는 Interactive elements의 정의가 무엇인지 잘 모르겠다)
content 메뉴, toolbar 메뉴, html 메뉴(우리가 흔히 말하는 메뉴) 를 menu를 사용해서 표현이 가능하다. (type attribute로 구분지어서 사용 가능) 말그대로 html에서 나타나는 모든 메뉴는 menu로 마크업이 가능하다.

결론은..”아직은 정답은을 알 수 없다. 하지만 html5가 나오면서 menu가 좀 더 정답에 가까워 진게 아닐까..?”

html5가 나오면 찜찜하게 ul로 메뉴를 마크업 하지 않아도 된다!! 만세!! lol

하지만, 이 menu는 그 menu가 아니었다 -ㅅ-;

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중