카테고리 보관물: Web Accessibility

Web Accessibility

자바스크립트로 특정 앨리먼트에 적용된 스타일값 받아오기

웹 페이지에 정의된 모든 앨리먼트의 배경 이미지를 뽑아올 필요성을 느껴서, 언제나 그렇듯 막무가내로 자바스크립트에 손을 대기 시작했는데요..

처음에는 다음과 같이 했습니다.


element.style.backgroundImage

이랬더니 값이 없다고 나오더군요. 그래서 좀 찾아보니… css같이 외부로 스타일을 지정해 준 경우에는 값을 읽어올 수 없다고 합니다.
그래서 이것도 몰랐냐 바보야 이러면서 computedstyle 이라는게 문득 생각나면서  좀 찾아봤더니 역시 우리의 IE는


element.currentStyle.backgroundImage

이렇게 써야한다고 하더라구요…

그래서 어쩔 수 없이 분기해서 함수처럼 만들어 쓰기로 했습니다. jQuery같은 훌륭한 라이브러리쓰는 사람들은 알 필요 없겠지만; 혹시나 해서 ^_^ 남겨봅니다.

그리고 언제나 그렇듯 제 코드는 무식 그자체 입니다. 보고 욕하지마세요. 조언은 환영합니다 ㅠ_ㅠ



function getStyle(obj ,sStyle) {
    var val;
    if (obj.currentStyle) {
        val = eval("obj.currentStyle."+sStyle);
    } else {
        val = eval("window.getComputedStyle(obj,null)."+sStyle);
    }
    return val;
}

miname 님의 조언으로 코드가 좋아졌습니다!!! 감사합니다!!! ㅎㅎ
무식하면 삼대가 고생해요 ㅠ_ㅠ 아래 코멘트는 miname님의 언급이십니다*_*

아시겠지만, 보안상으로보나 성능면에서 eval is evil이잖아요.^^
property 값을 얻을 때 bracket notation([])을 쓰면 eval 사용을 피할 수 있습니다.
아래처럼요.


function getStyle(el, sStyle) {
  var computedStyle;
  if (el.currentStyle) {
  computedStyle = el.currentStyle;
  } else {
  computedStyle = window.getComputedStyle(el, null);
  }
  return computedStyle[sStyle];
 }

만약에 위 function이 여러번 반복적으로 실행되는 상황이라면 아래처럼 바꿔서 두 번째부턴 더 빠르게 실행될 수 있도록 할 수 있을 겁니다.


function getStyle(el, sStyle) {
  if (el.currentStyle) {
   getStyle = function(el, sStyle) {
     var computedStyle;
     computedStyle = el.currentStyle;
     return computedStyle[sStyle];
   };
  } else {
   getStyle = function(el, sStyle) {
     var computedStyle;
     computedStyle = window.getComputedStyle(el, null);
     return computedStyle[sStyle];
   };
  }
  getStyle(el, sStyle);
 }

p.s 파젯을 KWCAG2.0 버전으로 조금 바꾸고 있습니다 ㅎㅎ 그중에 하나만들다가 이게 나온것이에요.
아시는분들만 안다는 파젯 사용방법을 아시는 분은 새로운 파젯 개발버전인 http://mydeute.com/was/pajet.js 으로 변경해서 확인 가능합니다 ㅋㅋㅋㅋ

작업의 범위와 웹 접근성 그리고 웹 접근성 품질마크

2002년말 당시에  저는 모 에이전시에서 초대형 사이트의 리뉴얼 프로젝트 진행 했었습니다. 이 사이트는 그 당시에도 IE6 뿐 아니라 IE5.5, IE5,IE4,NS4.7, MAC IE5.2 등등 그당시의 소위 잘나가던 브라우저들을 모두 맞춰야했었던 프로젝트였습니다. 페이지의 레이아웃을 테이블로 사용하긴 했지만 크로스브라우징은 구현하려고 노력을 많이 했던 프로젝트 였습니다.

그런데  사실 제가 다녔던 그회사는 좀 특이했습니다. 크로스 브라우징은 기본으로 해야한다는 마음가짐을 가진회사였고 제가 첫번째로 다닌 회사가 그 곳이었기 때문에 저는 크로스 브라우징에 대한 생각이 너무 당연 했습니다. 그런데 그다음에 옮긴 두번째 회사에서는 굳이 크로스 브라우징은 클라이언트가 원하지 않으면 신경쓰지 않아도 된다였습니다.

뭐 알았다고 했지만 이미 몸에 밴 습관(라인을 위한 1*1px 빈이미지, padding margin 트릭등)들은 변하지 않았습니다. 오히려 크로스 브라우징이 IE6만 신경쓰는것보다 더 쉬웠을 정도였으니까요. 공수가 많이 드는일도 아니었습니다. 내가 기본이라고 생각하는 범위가 넓으면 넓을수록 내가 얻어가는것과 결과물의 퀄리티는 넓어 질 수 밖에 없다고 생각합니다.

요 몇해사이 웹 접근성 품질마크가  나름 이슈가 되고 있습니다. 웹 접근성 연구소온라인 자문 서비스라는 것이 있는데요. 부족하지만 저도 자문을 조금씩 하고 있는데, 자문을 좀 하다보니 웹 접근성 제고와 방법에 대한 자문 요청이 아닌 NIA에서 시행하는 웹 접근성 품질마크의 기준이나 방법에 대한 자문 요청이 많아 지더라구요. 그만큼 웹 접근성 품질마크가 한국 웹 접근성에 큰 영향을 주었다고 생각되기도 하지만, 웹 접근성의 향상을 위한 토론과 문의등을 해야하는 게시판에서 품질마크의 기준에 대해서 문의가 나오는것은 좀 문제가 있다고 봅니다. 이 문제는 자문을 요청하는 사람도, 자문을 하는사람도, 그리고 게시판을 관리하는사람 그리고 품질마크를 담당 하는사람 모두에게 조금씩 문제가 있다고 봅니다.

일단 제가 몇번 얘기했지만 한국의 웹 접근성은 웹 접근성 품질마크가 전부가 아닙니다. 웹 접근성 품질마크는 최소한의 것이라고 생각합니다. 웹 사이트를 만들어서 납품하는 분들은(까놓고 말하겠습니다.) 웹 접근성을 고려해 웹 사이트를 만드는것인지 웹 접근성 품질마크를 고려해서 웹 사이트를 만드는것인지 잘모르겠습니다. 대부분의 업체들은 웹 접근성을 고려해 웹 사이트를 만들다 보니 부가적으로 품질마크 획득도 가능했다 정도겠지요:) 정말 이런것이길 바라겠습니다.

서론에서도 말한것과 같은 느낌으로 내가 항상 웹 접근성을 지켜서  웹사이트를 만들것이고 그것을 위해 노력하겠다라고 한다면 만들어진 웹페이지의 접근성의 퀄리티는 훨신 좋아 질것이고 쉽게 생각이 들것입니다. 웹 접근성을 고려한 사이트를 만들때 “어느부분까지만 지원하면 되”가 아니라 “이부분도 지원하면 더 좋아져”가 항상 드는 생각이기를 바랍니다.

웹 접근성  품질마크는 언제나 최종목적이 아닌 웹 접근성 구현을 위한 작은 한 단계 또는 부가적으로 얻어지는 작은 선물이라고 보시는게 좋을것 같습니다.

또한 웹 접근성 품질마크측에서도 좀더 능동적인 자세를 보여주었으면 하는 바램입니다. 자문게시판에 평가 카테고리가 있긴하지만 제 생각에는 품질마크는 별도의 게시판을 따로 구성하여 관리하는것이 좋을것 같습니다. 너무 영향력이 커져버린 웹 접근성 품질마크이기 때문에, 좀더 능동적이고 개방적인 제도가 되었으면하는 개인적인 바램입니다. 우리나라의 웹 접근성 향상을 위해 노력을 많이 해주셨는데 맨날 불평 불만만 말씀드려서 죄송합니다.

자문을하는 저도 좀더 열심히 공부하고 다각도로 생각의 폭을 넓혀서 항상 더 많은 도움을 드릴수 있도록 노력하겠습니다. 제가 아직은 많이 부족하지만 열심히 하는 모습은 보여드릴려고 노력하겠습니다.

올해는 만들어지는 모든 사이트가  웹 접근성은 기본으로 지켜지는 그런 한해가 되었으면 좋겠습니다.

닥치고 One web party

제가 음주가무를 한계를 뛰어 넘을 정도로 좋아한다는 것은 저를 아는 사람이면 대부분 아는 사실이죠 🙂

예전에 웹 표준의날이나 기타등등의 세미나 같은것이 없었을때는 대부분 벙개나 술자리에서 많은 기술 또는 토론이 오갔던것이 사실이었습니다. 저는 밤새 그런이야기에 귀를 기울이며 많은것을 배울 수 있었습니다.

그때의 향수를 잊지 못하고 약간은 허심탄회한 이야기? 또는 즐겁게 모두가 어울려서 놀수있는 분위기를 만들어보기위해서 준비한 자리가 One Web Party 입니다. 이미 신청완료가 되어버린 시점이지만…(사실 이렇게 인기 있을줄 몰랐습니다. 술쟁이들….) 신청하신분들이 모두 와주셔서 즐겁게 하루를 보내며 한해를 마감할 수 있는 자리가 될 수 있으면 좋겠습니다.

또한 저희가 이런 모임을 준비한게 처음이라 많은 부족함이 있을 수 있습니다. 양해 부탁드리며 불만 가지시지 않게 최선을 다하겠습니다.

11일날 봐요~

잇힝 Macbook air 11″

원래 맥북을 두대를 가지고 있었지만, 그 무시하지 못할 무게 때문에 들고 다니는것을 극도로 꺼려해서 세미나나 모임이 있을때만 들고 다녔었습니다. 분명히 노트북인데;;; 휴대가 간편해야하는데;

또한 이동중에 아이폰으로 문서나 웹서핑을하기에는 화면이 너무 작더라구요. 그래서 생각한것이 아이패드였습니다. 마침 아는 분께서 맥북 구매 의사를 밝혀 주셔서 제가 사용하던 맥북을 매각하기에 이르렀죠. 매각으로 생긴 자금은 아이패드를 구매할때 쓸 요량이었구요.

그런데 나오라는 아이패드는 안나오고 맥북에어가 11인치로 나와버린것입니다. 그것도 상당히 착한가격으로!! 게다가 성능도 다른 기타 넷북이랑은 상대가 안될 정도라니; 그냥 저는 출시 당일날 뭐에 홀린듯이 결재를 해버렸습니다. 정말 정신 차려보니 “결재 완료 되었습니다.”라는 문자가 아이폰으로 바로 오더라구요.

이미 일은 돌이킬 수 없습니다. 이후 저는 악몽과 같은 3주를 기다려야 했습니다. 같은날 결재한 현석님과 둘은 “우리 에어 언제오나” 를 입에 달고 살았죠. 결국 11월 16일에 저희는 맥북 에어를 받을 수 있었습니다.

macbook air 11

일단 첫 느낌은 가볍다였습니다. 다른 넷북과 비교해도 가볍다는 느낌이 강렬히 들었습니다. 게다가 성능이 기존의 맥북에 비해 크게 떨어지지 않습니다. 어짜피 저는 CPU를 많이 사용하는 어플리케이션을 많이 사용하지는 않기 때문에 Core 2 Duo 1.4도 넉넉하다는 생각이 들었습니다. 또한 Flash drive라서 그런지 오히려 파일 접근같은 부분에는 기존의 맥북보다도 빠르다는 느낌이 었습니다. 용량은 제가 보통 50기가 정도를 쓰고 있었기 때문에 64기가도 큰 문제는 없었습니다. 따라서 모든 조건이 맞는 간만에 그런 제품이 나왔다는 생각입니다. 일단 하루 써본 후 느끼는 단점은 키감이 약간 뻑뻑하다는 느낌이 들긴하는데 크게 불편하지는 않습니다. 이외에는 뭐 단점이 아직 보이지는 않습니다.

제가 보통으로 들고다니는 가방에도 딱 알맞게 들어간다는 소소한 만족도 있습니다:)

히히 이제 노트북 다운 노트북을 가지게 되었다는 느낌입니다 🙂

처음 맥북을 켜는데 시각 장애인을위해 Voice over를 사용할 수 있는 방법에 대한 안내가 나오는데, 약간은 감동먹었습니다. 접근성마저도 정말 이유있고 타당하게 제공하는 애플의 세심한 배려에 감동을 안할수가 없습니다. 우리나라의 어떤 단말기에서는 OS에있는 접근성 탭도 비활성화 시키기도 한다 던데 참 얼마나 생각의 격차가 나는건지 약간은 씁쓸한 기분마저 들더라구요.

맥북에어와 플래시 플레이어

이번에 나온 맥북에어를 구매하고 기다리고 있는데요. 이번 버전부터는 플래시 플레이어가 OSX에 탑재 되지 않은 채로 출시된다고 하네요. 이것때문에 사람들이 오해가 좀 많은것 같은데요. 무식한 제가 정말 놀란것은 저는 맥을 오랜시간 쓰고 있는데도 플래시 플레이어가 미리 깔려있는것을 몰랐거든요? =_=;;; 좀 창피한 얘기이긴합니다만… 암튼 애플의 대변인인 Bill Evans가 말한 애플의 공식적인 입장은

We’re happy to continue to support Flash on the Mac, and the best way for users to always have the most up to date and secure version is to download it directly from Adobe.

소비자가 항상 가장 최신이며 안전한 플래시의 버전을 사용할 수 있도록 새로운 맥북 에어에 Flash를 미리 설치하지 않았고, 이것은 회사 간의 이해관계와는 상관이 없다고 밝혔습니다.

쓰고 싶으면 알아서 써라 라는 것인데요… 이게 왜 이상한지 모르겠습니다. 윈도우도 플래시 플레이어 기본 탑재 안되어있는데요. 오히려 왜 이전에 플래시를 자동으로 설치된채로 배포했는지가 더 이상합니다.

또한 플래시를 깔수있는 방법을 알려주는 기능을 제공해줘야 한다는 의견도 있는데.. 저는 이것도 이해가 안됩니다. 플래시를 제공하는것은 웹 페이지를 만드는 사람이고 웹 페이지를 만드는 사람이 대체 콘텐츠와 플래시 다운로드 링크를 제공하는것이 맞지 않을까요? <object> 태그는 위에서 말한방법을 모두 정의할 수 있습니다. 그러기에 표준이 있는것이라 생각을 합니다. 그리고 애플은 표준에 맞게 해당 기능을 제공하면 된다고 생각합니다.

다시한번 말하지만 플래시는 모든 컴퓨터에 깔려있는 기본 프로그램이 아닙니다. 브라우저의 일개(일개라고 하기에 영향력이 크긴 하지만) 부가기능이며 프로그램일 뿐입니다.

저는 애플이 항상 독단적으로 행동한다는 많은 이야기를 듣고 공감하기도 합니다만, 그것 떄문에 애플을 싫어하지는 않습니다. 그들을 나에게 아직 실망을 안겨주지는 않았거든요. 그리고 아직까지는 그 독단적인 행동들이 정당하다고 생각됩니다.

그러니까 빨리 맥북에어 보내주세요 … 흙흙