2013-05-31 34 views
5

Tôi đang gặp khó khăn khi tìm câu trả lời rõ ràng về việc liệu trang web có thể vượt qua ít nhất WCAG 2.0 cấp A không nếu AJAX sử dụng một cách nào đó.WCAG 2.0 cấp A và nội dung được tạo AJAX

Đối example from WCAG2.0 khẳng định

"Tôi có thể đáp ứng WCAG 2.0 với Javascript/Ajax, Flash, PDF, Silverlight, và các công nghệ khác? WCAG 2.0 được thiết kế để áp dụng cho một loạt các công nghệ web."

Điều đó không chính xác nói "có/không". Một số tài liệu gợi ý rằng trang web phải hoạt động với JavaScript hoàn toàn bị vô hiệu hóa (trong trường hợp này câu trả lời rõ ràng là không), nhưng tôi có ấn tượng rằng đây là thông tin cũ và việc sử dụng JavaBcript không còn là rào cản tuyệt đối nữa (vui lòng sửa tôi nếu điều này là sai!).

Có thể điều này là bởi vì nó quá rộng để cung cấp cho một tấm chăn "CÓ", vì vậy hãy để tôi đưa ra một tình huống cụ thể (đơn giản nhưng cơ bản giống nhau).

1) Nếu trang web của tôi sử dụng AJAX để tạo danh sách dữ liệu (ví dụ: danh sách người dùng) ngay sau khi tải trang, tôi có thể vượt qua ít nhất ở Cấp A (và thậm chí có thể cao hơn không?) A ví dụ đơn giản để minh họa:

<h1> Stuff loads here on page load </h1> 
<div id="thisIsWhereContentGoes"> 
</div> 
<script type="text/javascript"> 
    var url = 'http://yourfavoritedatasource.url'; 
    var request = $.ajax({ 
     url: url, 
     type: "post", 
     data: 'text' 
    }); 
    request.done(function (response, textStatus, jqXHR){ 
     jQuery('#thisIsWhereContentGoes').html(response); 
    }); 
</script> 

Tôi đoán điều này là ổn.

2) Đi xa hơn một chút, nói rằng tôi có một số điều khiển (như prev/next để cuộn qua các trang của danh sách hoặc cập nhật nội dung, cho phép đơn giản là đây chỉ là các thẻ neo) vượt qua tại A/AA/AAA? Một sửa đổi nhỏ đối với mã ở trên:

<a href="javascript:doRequest()"> Next </a> 
<script type="text/javascript"> 
    doRequest(); 
    function doRequest() 
    { 
     var url = 'http://yourfavoritedatasource.url'; 
     var request = $.ajax({ 
      url: url, 
      type: "post", 
      data: 'text' 
     }); 
     request.done(function (response, textStatus, jqXHR){ 
      jQuery('div').html(response); 
     }); 
    } 
</script> 

Tôi hy vọng điều này cũng ổn.

Tôi hy vọng tôi chỉ là người khổng lồ và điều này hoàn toàn ổn. Theo như tôi thấy, điều này dường như không xung đột với WebAim's WCAG checklist

+1

Đó là trường học khá cũ (trước năm 2000) để nói rằng bạn không thể sử dụng JS. Câu trả lời của Mook bao gồm những điều cơ bản. WCAG2.0 được chia thành 4 khu vực: Có thể nhận biết, Hoạt động, Dễ hiểu và Mạnh mẽ. TL; DR: Có, bạn có thể sử dụng JS –

Trả lời

6

Câu hỏi đầu tiên của bạn và duy trì việc sử dụng WebAIM như một tài nguyên tuyệt vời, có vẻ như các trang web phải hoạt động mà không có Javascript nữa, ít nhất theo số http://webaim.org/discussion/mail_thread?thread=3870.

Sự đồng thuận này dường như là một trang web không phải làm việc với tắt Javascript miễn là một trong một số tiêu chí được đáp ứng ví dụ rằng một tác nhân người dùng có thể dễ dàng và rẻ tiền có thể hỗ trợ JavaScript .

Đối với việc sử dụng AJAX, nó có vẻ là hoàn toàn tốt đẹp miễn là tất cả các khía cạnh của khả năng tiếp cận được giải quyết, cụ thể là

  1. Các ứng dụng phải cảnh báo người dùng rằng một sự thay đổi đã xảy ra
  2. Cho phép trực tiếp truy cập vào các nội dung mới
  3. cho phép tiếp tục chức năng của các ứng dụng web

từ http://webaim.org/techniques/ajax/.

WebAIM có bài viết tiếp theo tuyệt vời thể hiện các cách để đạt được các loại mục tiêu này tại http://webaim.org/techniques/aria/. Tôi đặc biệt sẽ xem phần Cập nhật nội dung động, nhấn mạnh việc sử dụng WAI-ARIA các vùng trực tiếp.

+0

Cảm ơn. Sau đó, ví dụ của tôi ở trên dường như không đầy đủ vì khía cạnh (1) có thể không thành công? [Liên kết webaim thứ hai] (http://webaim.org/techniques/aria/) bạn cung cấp gợi ý rằng tôi có thể thêm thuộc tính aria-live = "polite" vào #thisIsWhereContentGoes div dưới dạng imporvement. – amomin

Các vấn đề liên quan