실전 웹 표준 가이드 질문입니다

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
soo

실전 웹 표준 가이드 질문입니다

Post by soo »

궁금한게 있어서 질문 드립니다
실전 웹 표준 가이드에서 보면

1.<a href="javascript:goURL(here);">틀린 표
2.<a href="#">맞는 표현</a>

이런 부분 있는데

1번으로 하면 ie,ff 에 작업표시줄에 javascript:goURL(here); 나오고
2번으로 하면 ie.ff 에 경로명# 나오는데

작업표시줄에
경로명이 다 나오는것 보다는
javascript:goURL(here);
이렇게 나오는게 좋지 않나요?

이부분에 대해서 w3c 는 어디를 봐야 하나요?

답변 부탁드립니다
soo

코드 부분이 없어져서....

Post by soo »

Code: Select all

1번 a href="javascript:goURL(here);" 틀린 표
2번 a href="#" onClick="javascript:goURL(here);"  맞는 표현 
dece24
서포터즈
서포터즈
Posts: 83
Joined: 2006 05 04 02:44 45
Location: 대전
Contact:

여기 있습니다.

Post by dece24 »

1번예는 표준 마크업에도 위배되고 접근성이 떨어지기 때문에 바람직 하지 않은 방법이죠.

1번 예제를 Shift 키를 누르고 새창으로 띄워 보십시오. - 불편하실껍니다.
1번 예제에 마우스 올렸을때 작업표시줄에 링크정보가 안나오면. - 작업표시줄 정보를 유용하게 사용하는 사용자들에게는 역시 불편합니다.
1번 예제는 자바스크립트가 동작하지 않는 환경에서는 아무것도 할 수 없습니다.

http://www.w3c.or.kr/Translation/WAI-WE ... chnologies
스크립트 기능이 꺼져 있거나 지원되지 않을 경우에도 스크립트를 활성화하는 링크가 작동하도록 해야 한다. (예를 들어, 링크의 목적지 로 "javascript:"를 쓰지 말라. 역자 주 : "href" 속성의 값으로 "javascript:"를 쓰는 것은 접근성 지침 위반일 뿐 아니라 HTML 표준 위반이기도 하다. ) 만약 스크립트 없이 페이지를 사용하는 것이 불가능하다면, NOSCRIPT라는 요소를 사용하여 대체 텍스트를 제공하거나, 클라이언트측 스크립트 대신에 서버측 스크립트를 사용하라. 또는 체크포인트 11.4에서와 같이 대안적으로 접근 가능한 페이지를 제공하라. 지침 1도 참조하라.
User avatar
Channy
해커
해커
Posts: 1006
Joined: 2002 03 26 17:41 59
Location: 아름다운 제주
Contact:

Post by Channy »

가장 좋은 것은 href에 정확한 링크를 거는 것입니다. 만약 할 수 없이 자바스크립트 함수를 써야 한다면 스크린 리더나 검색엔진을 위해 정확한 URL을 건 후, onClick 속성 후에 return false를 쓰면 됩니다. 즉, 아래와 같이 표현할 수는 있습니다.

Code: Select all

1번 a href="javascript:goURL(here);" 틀린 표
2번 a href="here" onClick="javascript:goURL(here);return false;"  맞는 표현 
Channy
---------------
Are you creative? http://www.creation.net
빛알갱이
해커
해커
Posts: 1146
Joined: 2004 01 15 20:06 36

Post by 빛알갱이 »

가장 좋은 것은 href에 정확한 링크를 거는 것입니다. 만약 할 수 없이 자바스크립트 함수를 써야 한다면 스크린 리더나 검색엔진을 위해 정확한 URL을 건 후, onClick 속성 후에 return false를 쓰면 됩니다. 즉, 아래와 같이 표현할 수는 있습니다.

Code: Select all

1번 a href="javascript:goURL(here);" 틀린 표
2번 a href="here" onClick="javascript:goURL(here);return false;"  맞는 표현 
goURL이 단순하게 URL만 인자로 받는다면 당연히 그렇게 해야 하고요. 그런데,
많은 곳에서 goURL이 단순하게 url을 인자로 받는 게 아니라 복수의 인자를 받아서 그를 바탕으로 url을 만들어 내더군요. [1]그 계산하는 javascript 함수가 하는 일을 현재 서버측에서 쓰는 언어(PHP, Java, Perl, Python ....)로 계산해서 실제 URL을 href에 써 주면 될 텐데....왜 그렇게 할까요? Javascript로 클라이언트 측에 계산을 시키면 서버 부하가 떨어지니까? 모르겠습니다...

[1] 물론, 차니님이 위에 적은 'here'는 이런 경우도 다 포함하는 의미였을 것입니다만, 흔히 보이는 문제라서 다시 한번 구체적으로 언급합니다.
nowhere0

Post by nowhere0 »

여러 이유가 있겠죠.
사용하는 프레임워크 자체가 그런 경우들이 있습니다. 링크를 이용하는 대신, javascript로 form submit을 하는 식으로 네비게이션플로우를 관리하는 프레임워크들이 있지요. .NET 프로그래머들에게 간혹 보입니다. JAVA쪽에도 그러한 프레임워크를 쓰는 경우를 봤구요.

또다른 경우는, 페이지 이동 전에 뭔가 처리해주고 싶을 때 간단히 그렇게 하곤 합니다. 예를 들어, 조금 경우가 다르지만, 폼 체크 등을 한다거나...하는 경우죠. 일단 페이지 이동 후에 넘겨받은 값을 판단해서 확인 후 맞지 않는다면 다시 되돌리는 것이 정상이겠습니다만...

그러나 그보다는.. 그냥 관습적으로 그렇게 해왔기 때문에 그런 경우가 대부분입니다.

javascript를 전혀 쓰지 않고도 동작하는 페이지를 만들고, window.onload시에 binding으로 javascript를 덧붙인다면 그럴 필요가 없겠지만.. 애초부터 javascript를 적극적으로(?) 염두에 두고 작업을 하다보니 그렇게 되는 것 같더군요.
User avatar
Channy
해커
해커
Posts: 1006
Joined: 2002 03 26 17:41 59
Location: 아름다운 제주
Contact:

Post by Channy »

nowhere0 wrote:그러나 그보다는.. 그냥 관습적으로 그렇게 해왔기 때문에 그런 경우가 대부분입니다.
농담이지만... 제가 보기엔 자바스크립트로 뭔가 폼나는 프로그래머 흉내를 내고 싶은 자존심 뭐.. 그런 거 같습니다. 그런거 있잖아요. C로 객체 지향 프로그램을 짤려고 하는..
Channy
---------------
Are you creative? http://www.creation.net
Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 0 guests