lang/html

anchor 태그의 href 속성, #, javascript:void(0), #//

C/H 2007. 1. 3. 01:52
웹 콘텐츠(의) 접근성(을 높이기 위한 제작) 지침 1.0

지침 6. 새로운 기술을 사용한 페이지는 그 기술을 지원하지 않는 환경에서도 내용을 보전하면서 표시될 수 있도록 한다.

새로운 기술을 지원하지 않는 표시 장치를 쓰거나 또는 그런 기능을 꺼 놓았다고 하더라도 페이지에 접근 가능하도록 해야 한다.
콘텐츠 개발자가 현존 기술의 문제점을 해결하기 위해 새로운 기술을 사용하는 것은 장려할 일이지만, 구버전의 브라우저나 새로운 기능을 꺼놓은 사용자들에게도 여전히 그 페이지가 보이도록 하는 방법을 알아야 한다.

체크포인트:
6.1 스타일 시트가 없더라도 읽을 수 있게 문서를 구조화한다. 예를 들면, HTML 문서가 스타일 시트가 없이 표시되더라도 반드시 그 문서를 읽을 수 있어야 한다. [중요도 1]
내용을 논리적으로 구조화한다면, 스타일 시트가 작동하지 않거나 지원되지 않을 경우에도 문서의 내용이 의미있는 순서대로 표시가 될 것이다.
체크포인트 6.1과 관련된 기술/기법

6.2 동적인 콘텐츠가 변할 경우 대응하는 대체 텍스트(equivalents)도 좇아서 변하도록 한다.

6.3 스크립트나 애플릿, 또는 다른 프로그램 객체를 사용하지 않거나 지원하지 않는 경우에도 페이지의 내용을 이해할 수 있어야 한다. 그것이 불가능하다면, 대안적으로 접근 가능한 페이지에 그들을 대체할만한 정보를 제공하라.
예를 들면, 스크립트 기능이 꺼져 있거나 지원되지 않을 경우에도 스크립트를 활성화하는 링크가 작동하도록 해야 한다. (예를 들어, 링크의 목적지 로 "j avascrpt:"를 쓰지 말라. 역자 주 : "href" 속성의 값으로 "j avascrpt:"를 쓰는 것은 접근성 지침 위반일 뿐 아니라 HTML 표준 위반이기도 하다. ) 만약 스크립트 없이 페이지를 사용하는 것이 불가능하다면, NOSCRIPT라는 요소를 사용하여 대체 텍스트를 제공하거나, 클라이언트측 스크립트 대신에 서버측 스크립트를 사용하라. 또는 체크포인트 11.4에서와 같이 대안적으로 접근 가능한 페이지를 제공하라.


6.4 스크립트나 애플릿을 쓸 때에는 이벤트 처리 루틴(event handler)이 입력 장치에 독립적이어야 한다. [중요도 2]
장치 독립성의 정의를 참조하라.

6.5 동적인 콘텐츠가 접근 가능한지 확인하고, 그렇지 않으면, 대안적인 제시를 하거나 대안적인 페이지를 제공한다. [중요도 2]
예를 들면, HTML에서는 모든 프레임셋(frameset) 끝에 NOFRAMES를 사용한다. 일부 응용 프로그램에게는 서버측 스크립트가 클라이언트측 스크립트보다 더 접근성이 높은 경우도 있다.




여러분은 이럴경우 어떤 내용으로 내용이 없는 앵커태그를 사용하는가?
1. href="",
2. href="#",
3. href="j avascrpt:void(0)",
4. <a >
위 형식을 쓰는 경우를 많이 봐 왔다.
나역시 많은 고민이 있었지만... 표준을 준수하려면 결국 href="#" 형식을 사용해야만 했다.
아니면 위의 4번의 경우를 사용하던가 하지만 여러 접근성및 표준 검사기를 사용 해 보았을 경우 href="#"의 경우 이외 혹은 지침서에서 지정한 표준내용을 만족하는 경우는 href="#"경우 밖에 없었다.

그런데 href="#"의 경우도 약간의 문제가 존재하는데 href="#"을 사용했을 경우 스크롤바가 내려가 있을 경우 앵커 태크를 클릭시 [Home]키를 누른 현상과 같이 스크롤바가 위로 올라가버리는 현상이 발생한다.

이 현상에 대해 여러가지 생각을 해 봤는데 href="#"은 페이지 내에서 위치를 찾는 기능과 연결이 되어있어서 그렇지 않나 생각이 된다.

결국 개인적으로 여러가지 방안을 마련하다보니 href="#//" 형태의 이상한 결론이 나왔다. 하지만 href="#//"은 익스와 넷츠 혹은 불여우에서 문제없이 동작했고, 웹지침및 검사 툴에서도 문제없이 통과가 되는 경우라서 항상 href="#//"를 사용한다.

그리고 href="j avascrpt:" 이것보다는 href="#//" 이게 글자 수가 더 작지 않은가? ^^

by : 2007년 01월 03일 수요일 새벽 2시 깊은 밤중에 uncaose
반응형

'lang > html' 카테고리의 다른 글

플래쉬(Flash) 위에 레이어(DIV) 출력  (0) 2007.03.01
홈페이지 메인페이지에 들어가야할 소스들  (0) 2007.01.31
HTML 특수문자표  (0) 2006.11.01
REST(Representational State Transfer)  (0) 2006.11.01
Creative Commons(CC)  (0) 2006.10.24