문제

웹 개발자로서, 내가 일하는 많은 프로젝트는 정부 우산에 속하므로 508 접근성 법, 때로는 W3C 접근성 가이드 라인. 이러한 요구 사항을 충족하는 동안 JavaScript를 어느 정도 사용할 수 있습니까?

이 라인을 따라 JavaScript, 특히 ajax 및 jQuery와 같은 패키지를 사용하여 Display Modal 대화, 팝업 등과 같은 작업을 수행하여 Jaws, Orca 등과 같은 최신 접근성 소프트웨어가 지원하는 경우가 어느 정도입니까? 과거에는 규칙이 "Lynx에서 작동하지 않으면 화면 리더에게는 효과가 없다"와 같은 규칙이있었습니다. 이것이 여전히 사실입니까, 아니면이 분야에서 더 많은 진전이 있었습니까?

편집 : 합의는 JavaScript가 아닌 폴백이있는 한 JavaScript가 괜찮은 것으로 보이지만 화면 리더 소프트웨어의 AJAX 지원에 대해서는 여전히 불확실한 것 같습니다. 누구든지 이에 대한 특정 경험이 있다면 가장 도움이 될 것입니다.

도움이 되었습니까?

해결책

접근성이 주요 관심사 인 경우 항상 표준 호환 (문서 유형 정의를 선택하고이를 고수)을 사용하여 웹 사이트를 시작하십시오. 웹 애플리케이션 (양식 제출 등) 인 경우 HTTP Get and Post 만 사용하여 양식이 작동하는지 확인하십시오. 완전한 웹 사이트/애플리케이션이 있으면 사이트가 여전히 작동하는 한 CSS 및 JavaScript의 비트를 추가 할 수 있습니다.

여기서 가장 중요한 개념은입니다 진보적 인 향상. CSS/JavaScript를 사용하여 추가 종과 휘파람을 추가하고 있지만 웹 사이트/응용 프로그램은 완벽하게 작동합니다. 없이 어느 하나.

테스트를위한 훌륭한 도구 508, 와이, CSS OFF, JavaScript OFF를 사용해보십시오 웹 개발자 Firefox 용 플러그인.

다른 팁

답은 실제로 당신이 물건을 건축하는 방식에 있다고 생각합니다. jQuery는 눈에 잘 띄지 않아 접근 할 수있는 능력이 있습니다. 요령은 ajax 통화 주변에서 중복성을 갖는 것입니다. 따라서 JavaScript가없는 브라우저는 여전히 서비스를 활용할 수 있습니다. 다시 말해, JavaScript 응답, 대화 상자 등이 어디에 있든 해당 동등한 수준이 저하되어야합니다.

접근성을 염두에두고 두 가지 사용 사례 (JavaScript vs. Non JavaScript)에 대해 올바르게 테스트하는 경우 두 청중에게 맞는 응용 프로그램을 작성할 수 있어야합니다.

예제 ($ (document). Ready Call은 명확성과 간결성을 위해 생략했습니다.

<script>
  $("#hello").click(function(){
    alert("Hi");
  });
</script>
<a href="/say_hello.htm" id="hello">Say Hello</a>

사소한 예제이지만 기본적으로 JavaScript가 지원되는 경우 클릭 JavaScript 이벤트 만 평가합니다. 그렇지 않으면 일반 링크처럼 수행하고 Say_Hello.htm으로 이동합니다. 개발자로서 귀하의 작업은 두 결과를 모두 적절하게 처리하도록하는 것입니다.

도움이되기를 바랍니다!

진보적 인 향상은 확실히 하나의 경로이지만, 화면 리더가 브라우저를 작업의 기초로 사용하는 경향이 있기 때문에 모든 경로는 전부가 아니며 모든 자바 스크립트 접근성이 아닙니다. 해당 브라우저는 JavaScript를 지원하므로 페이지의 스크립트는 여전히 실행됩니다. 페이지의 한 부분을 클릭하면 화면 리더가 알지 못하는 페이지의 다른 부분을 변경할 수 있기 때문에 Ajax의 특정 문제입니다.

그러나 Ajax가 성숙함에 따라 접근 가능하게 만드는 방법이 떠오르고 있습니다. 살펴보십시오 와이 아리아 Ajax에 액세스 할 수있는 현대적인 방법 Google의 Axsjax 그것을 구현하는 좋은 방법.


보다

FlashAid는 완벽한 솔루션과는 거리가 멀지 만 FlashAid를 살펴볼 수도 있습니다. (그러나 진보적 인 향상을 사용하고 Flash가 존재하고 사용자가 접근성 API를 사용하지 않았을 때 Ajax 만 사용한 경우 Windows의 합리적인 솔루션이있을 수 있습니다.)

장기적으로 Wai-Aria가 해결책입니다. Jaws 10 (베타)과 Firevox에서는 다소 지원되지만 오늘날의 모든 사용자에게는 충분하지 않습니다.

jQuery는 눈에 잘 띄지 않아 접근 할 수있는 능력이 있습니다. 요령은 ajax 통화 주변에서 중복성을 갖는 것입니다. 따라서 JavaScript가없는 브라우저는 여전히 서비스를 활용할 수 있습니다. 다시 말해, JavaScript 응답, 대화 상자 등이 어디에 있든 해당 동등한 수준이 저하되어야합니다.

코드를 재사용하기 위해이 작업을 수행하는 한 가지 방법은 JSON 또는 XML을 반환하여 자체적으로 호출 할 수있는 "기능"(또는 서버 측로 로직에 사용하는 것)을 호출하는 "간단한"페이지를 갖는 것입니다.

예를 들어 : /static/myform.asp (서버 측면에서 ' /ajax/myform.asp와 동일한 논리를 포함).

물론, 전체 특집 Bell and Whistles 프레임 워크를 사용하면 훨씬 쉽게 만들 수 있지만 (Django에서 동일한보기에 HTML과 XML '템플릿'을 갖는 것을 생각할 수 있지만 동일한 아이디어가 적용됩니다.

이 작업을 수행 한 후, jQuery를 사용하여 준비된 문서의 모든 앵커를 반복하고 앵커 자체 링크를 사용하여 on 클릭 이벤트를 추가하면 remplacing/static/ajax/가 인생을 더 쉽게 만들 수 있습니다.

누구든지 이것이 너무 많은 부담이 될 이유를 생각할 수 있습니까? 이 '디자인 아이디어'에 심각한 결함이 있는지 알고 싶습니다.

나는 그 당시에는 괜찮지 만 이제는 허용 된 대답이 이제 구식이라고 생각합니다. (이 답변을 쓸 때 말 그대로 10 년 전. WCAG 2.1은 몇 주 전에 마무리되었습니다 ...)

그만큼 W3C Wai-Authoring Design Patterns Practices 문서에는 일반적인 위젯의 다양한 예가 포함되어 있습니다 필요하다 올바른 의미론, 상태 및 역할을 보조 기술에 전달하기위한 JavaScript.

Ajax는 ScreenReaders에게 사용자가 활성화하기 전에 인 페이지 업데이트가 무엇인지에 대한 관련 시맨틱 단서를 제공하는 한 액세스 할 수 있습니다. 또한 ScreenReader에 실제로 변경된 내용에 대해 알릴 필요가있을 수 있습니다. 예를 들어 ARIA-LIVE 지역은 "20 개의 새로운 항목이로드 된 것"또는 그 밖의 무엇이든 발표 할 수 있습니다. 이것은 JavaScript로 달성됩니다.

접근성 지식이 '진보적 인 향상'에서 멈추고 위의 허용 된 답변을 해당 위치에 대한 이론적 근거로 볼 수 있다면 업데이트가 필요할 수 있습니다. 요즘 상황이 빠르게 움직이고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top