주제: a:visited 스타일의 브라우저별 적용이 다르다.
오늘 케익소프트에서 의뢰하고 한국시각장애인복지관에서 진행했던 스크린리더 교육이 있었습니다.
hyeonseok님이 좋은 교육자리를 소개시켜줘서 뜻깊은 교육을 들었는데요
다시 불타오르는 CDK의 활발한 활동에 탄력받아 올해 1월에 나름 의견이 많이 나올것 같았던 글 에 대해 현석님과 돌아오는 차속에서 잠시 이야기를 하고 다시한번 올려보고자 해서 글을 적습니다. 차속에서 이야기했던 내용보다 실제로 답변이 좀 달려있었었네요.. 아무튼..-_-;;
문제를 간략히 요약해보면 <a href=""> 의 속성에는 두가지의 사용방법이 있는데요 이동하고자하는 사이트(페이지)의 주소를 기입하거나 #id 와 같이 ID값을 넣어 ID로 포커스를 이동하게 하는 방법이 있습니다.
문제는 두번째 방법에 대해 IE7에서 해석하는 것이였는데요...
예를들자면 href="" 값에 id값을 넣어놓은 링크텍스트가 있다고 치고 그부분의 스타일은
a:link {font-weight: bold;}
a:visited {font-weight: normal;}이렇게 코드를 작성하고 생각대로라면 링크텍스트를 클릭하기전의 폰트는 굵게 표시되어있을것이고 클릭을 했다면 다시 평상시 굵기로 돌아가야합니다. 여기까지는 모든브라우저가 동일한데요 IE7에서는 새로고침으로 페이지를 리로딩 하면 다시 굵은 폰트로 돌아가 있는 결과를 볼 수 있었습니다.
IE6 에서는 그렇게 되지 않았고 FF, Op 역씨 그렇지 않았습니다.
왜 IE7은 이렇게 해석을 하는지 궁금해 IE7개발 사이트를 통해 문의메일을 보냈었는데요
예전글에서 잘된다는 분도 있었고 안된다는 분도 있었지만 저는 분명 안되었고 IE7 support 에서도 그 부분을 인정했고 나름에 마지막으로 결론을 지어 답변을 보내주었는데요.
아마도 어우야님의 생각과 IE7 support 의 결론이 가장 근사치에 가깝지 않았나 생각되구요..
작년 말에 받은 메일내용이지만 메일내용을 공개할까 합니다 물론 별로 관심이 없을것도 같지만요...ㅠ_ㅠ
- 본 메일은 내용이 길기때문에 약간 내용을 압축해서 재기록 해서 올립니다. (물론 존대말도 모두 격식을 뺐다)
to IE7 통합지원센터 06-12-27
우선 늦게라도 IE7 출시를 축하한다.
지금 한국에 브라우져 사용 상황이 IE6 버전과 IE7버전중 뭐라 말할 수 없는 상황이라서 UI작업을 하고 테스트를 두 브라우저 모두 다 같이 하고 있다.
그런데 작업을 하면서 한가지 버그아닌 버그를 발견한것이 있다. a 태그의 style 속성에는 link, visited, hover, active, focus 가 있는데 a 태그의 href 속성안에 # 값을 주면 visited 가 먹히질 않는다. 물론 #을 주면 자기 자신 페이지이기때문이라는 생각이 들지만 IE6에서는 생각하는대로 잘 적용되는 방식이 왜 IE7에서는 안되는지 모르겠다.to ifree1999 06-12-27
우리가 자체적으로 샘플 html파일을 만들어서 테스트한 결과로는 #에 대한 처리의 경우에도 visited가 잘 먹히는 것으로 확인이 됐다.
visited가 잘 안 먹히는 샘플 파일을 보내 줬으면한다.
문제의 원인을 찾으려면 동일하게 해당 증상이 재현이 되어야 하는데 우리쪽 테스트 방법과 ifree1999님의 테스트 한 방법과 차이가 있는 것인지 확인이 어렵다.
직접 샘플을 주시면 테스트를 해서 확인하도록 하겠다.to IE7 통합지원센터 06-12-28
혹씨 :visited 스타일 확인후 F5번 키나 새로고침을 눌러서도 확인해보았나?
일단 확인하려던 파일은 보냈다. 외국에 다른 포럼에도 글을 올려보고 찾아봤었는데 영문IE7 에서는 잘 된다는 말 뿐이었다.
그리고 #링크를 그냥 자기컴퓨터에서 실행하니까 처음부터 visited 로 인식이 되었다.
그래서 나는 웹서버에 올려놓고 테스트를 했다.to ifree1999 06-12-28
보내준 소스를 조금 수정했다. 위 첨부파일로 테스트를 하면 정상적으로 visited가 먹히는 것을 확인 하실 수 있을 것이다.
하지만 <a 태그에 onclick event를 쓰는 경우는 굳이 그렇게 해야 할 이유가 있는 것인지 모르겠다.
Onclick event는 보통 tr이나 td 태그에 마우스 클릭 이벤트를 처리하기 위해서 사용하는 것이고 a태그에서는 자동으로 링크를 생성해 주기 때문에 별도로 onclick을 쓰지 않고 처리를 하는데 꼭 써야하는 이유가 있는가?to IE7 통합지원센터 06-12-28
보내준 샘플파일은 잘 받았다.
하지만 a href="" 에 파일명이나 경로를 적어주면 잘 되는건 이미 알고있고 확인도 했었다.
문제가 된다는건 a href="" 에 #id 값을 넣었을때 안된다는 거였다.
안된다는건 클릭을 했을땐 visited 로 된것처럼 보이지만 새로고침을 하면 다시 a:link 스타일로 돌아간다는것이다.
IE7에서 a href="#" 에 대한 :visited 스타일이 새로고침했을때 다시 :link 로 돌아가버리는 오류는 고칠방법이 아직은 없는건가?to ifree1999 06-12-28
오류라고 보기에는 어려운 점이라고 생각 된다.
굳이 onclick 이벤트를 처리하려고 하는 의도를 몰라 명확히 답을 드리기 어렵지만, 현재로서는 ifree1999님이 겪고 있는 증상이 IE7에서 공통적으로 발생하는 증상으로서 오류로 의심되는 기능은 아니고 design으로 판단된다.
물론 a 태그에 href 에는 경로나 페이지를 적어주는것이 가장 바람직하닥 하겠지만......음..
여러분들의 생각은 어떤가요?
최종 편집 : ifree1999 (2007-06-21 01:37 AM)
웹 표준을 넘어 웹 접근성으로

