Hỗ trợ tiếp cận

Cho phép các trang của bạn phản hồi với nhiều kích thước màn hình là một trong những cách để đảm bảo trang web của bạn có thể tiếp cận được nhiều người nhất có thể. Hãy cân nhắc một số yếu tố khác mà bạn nên lưu ý.

Hội chứng mù màu

Mỗi người cảm nhận màu sắc theo cách riêng. Người bị mù màu đỏ không cảm nhận được màu đỏ là một màu riêng biệt. Người bị mù màu xanh lục sẽ không nhìn thấy màu xanh lục. Đối với người bị mù màu xanh dương, màu này là màu xanh dương.

Một số công cụ có thể giúp bạn hình dung được bảng phối màu của mình sẽ trông như thế nào đối với những người có các loại thị lực màu khác nhau.

Thẻ Hỗ trợ tiếp cận của Firefox có một trình đơn thả xuống có nhãn Mô phỏng với một danh sách các lựa chọn.

Mô phỏng chứng mù màu đỏ (không có màu đỏ). Mô phỏng chứng mù màu xanh dương (không có màu xanh dương)
Xem một trang web với các tình huống mô phỏng về nhiều loại thị lực màu.

Trong Chrome DevTools, thẻ kết xuất cho phép bạn mô phỏng khiếm khuyết thị giác.

Đó là những công cụ dành riêng cho trình duyệt. Bạn cũng có thể mô phỏng các loại thị lực khác nhau ở cấp hệ điều hành.

Trên máy Mac, hãy chuyển đến:

  1. Lựa chọn ưu tiên về hệ thống
  2. Hỗ trợ tiếp cận
  3. Màn hình
  4. Bộ lọc màu
  5. Bật bộ lọc màu

Chọn một trong các lựa chọn.

Các lựa chọn về bộ lọc màu trong phần lựa chọn ưu tiên cho hệ thống.

Nói chung, bạn không nên chỉ dựa vào màu sắc để phân biệt giữa các phần tử. Ví dụ: bạn có thể (và nên) đặt màu khác cho đường liên kết so với văn bản xung quanh. Tuy nhiên, bạn cũng nên áp dụng một số chỉ báo về kiểu dáng khác, chẳng hạn như gạch chân hoặc in đậm các đường liên kết.

Không nên
a {
  color: red;
}
Nên
a {
  color: red;
  font-weight: bold;
}

Độ tương phản màu

Một số tổ hợp màu có thể gây ra vấn đề. Nếu không có đủ độ tương phản giữa màu nền trước và màu nền sau, văn bản sẽ khó đọc. Độ tương phản màu kém là một trong những vấn đề thường gặp nhất về khả năng hỗ trợ tiếp cận trên web. Tuy nhiên, may mắn là bạn có thể phát hiện vấn đề này ngay từ đầu trong quá trình thiết kế.

Sau đây là một số công cụ bạn có thể dùng để kiểm tra tỷ lệ tương phản của văn bản và màu nền:

Bạn nên luôn khai báo colorbackground-color cùng nhau trong CSS. Đừng cho rằng màu nền sẽ là màu mặc định của trình duyệt. Mọi người có thể và thường thay đổi màu sắc mà trình duyệt của họ sử dụng.

Không nên
body {
  color: black;
}
Nên
body {
  color: black;
  background-color: white;
}

Độ tương phản cao

Một số người đặt hệ điều hành của họ ở chế độ tương phản cao. Bạn có thể thử cách này trên hệ điều hành của mình.

Trên máy Mac, hãy chuyển đến:

  1. Lựa chọn ưu tiên về hệ thống
  2. Hỗ trợ tiếp cận
  3. Màn hình

Chọn chế độ tăng độ tương phản.

Tăng độ tương phản trong phần lựa chọn ưu tiên về hệ thống.

Có một tính năng đa phương tiện để phát hiện xem người dùng có bật chế độ tương phản cao hay không. Bạn có thể truy vấn tính năng đa phương tiện prefers-contrast cho 3 giá trị: no-preference, lessmore. Bạn có thể sử dụng thông tin này để điều chỉnh bảng màu của trang web.

Browser Support

  • Chrome: 96.
  • Edge: 96.
  • Firefox: 101.
  • Safari: 14.1.

Source

Mọi người cũng có thể đặt lựa chọn ưu tiên trong hệ điều hành để sử dụng màu đảo ngược.

Trên máy Mac, hãy chuyển đến:

  1. Lựa chọn ưu tiên về hệ thống
  2. Hỗ trợ tiếp cận
  3. Màn hình

Chọn chế độ đảo ngược màu.

Đảo ngược màu trong phần tuỳ chọn hệ thống.

Đảm bảo rằng trang web của bạn vẫn có ý nghĩa đối với người duyệt web bằng màu sắc đảo ngược. Chú ý đến bóng đổ của hộp – bạn có thể cần điều chỉnh những bóng đổ này khi đảo ngược màu.

Cỡ chữ

Màu sắc không phải là thứ duy nhất mà mọi người có thể điều chỉnh trong trình duyệt của họ, họ cũng có thể điều chỉnh kích thước phông chữ mặc định. Khi thị lực suy giảm, họ có thể điều chỉnh cỡ chữ mặc định trong trình duyệt hoặc hệ điều hành, tăng cỡ chữ theo thời gian.

Bạn có thể phản hồi các chế độ cài đặt này bằng cách sử dụng cỡ chữ tương đối. Tránh sử dụng các đơn vị như px. Thay vào đó, hãy sử dụng các đơn vị tương đối như rem hoặc ch.

Hãy thử thay đổi chế độ cài đặt cỡ chữ mặc định trong trình duyệt. Bạn có thể làm việc đó trong phần lựa chọn ưu tiên của trình duyệt. Hoặc bạn có thể thực hiện việc này trong khi truy cập vào một trang web bằng cách phóng to. Trang web của bạn có hoạt động bình thường nếu cỡ chữ mặc định tăng thêm 200% không? Còn 400% thì sao?

Người truy cập vào trang web của bạn trên máy tính có kích thước phông chữ tăng lên 400% sẽ thấy bố cục giống như người truy cập vào trang web của bạn trên một thiết bị có màn hình nhỏ.

Trang web Clearleft.com.
Cùng một trang web được xem trên thiết bị di động và thiết bị máy tính. Cỡ chữ của trình duyệt trên máy tính đã được tăng lên 400%.

Điều hướng bằng bàn phím

Không phải ai cũng dùng chuột hoặc bàn di chuột để di chuyển trên các trang web. Bàn phím là một cách khác để di chuyển trên trang, trong đó phím tab đặc biệt hữu ích. Người dùng có thể nhanh chóng di chuyển từ một đường liên kết hoặc trường biểu mẫu sang đường liên kết hoặc trường biểu mẫu tiếp theo.

Các đường liên kết được tạo kiểu bằng :hover:focus giả lớp sẽ hiển thị những kiểu đó bất kể người dùng đang sử dụng chuột, bàn di chuột hay bàn phím. Sử dụng lớp giả :focus-visible để tạo kiểu cho các đường liên kết chỉ dành cho thao tác điều hướng bằng bàn phím. Bạn có thể làm cho những kiểu này nổi bật hơn.

a:focus,
a:hover {
  outline: 1px dotted;
}
a:focus-visible {
  outline: 3px solid;
}

Khi người dùng nhấn phím Tab để chuyển từ đường liên kết này sang đường liên kết khác hoặc từ trường biểu mẫu này sang trường biểu mẫu khác, những phần tử đó sẽ được lấy tiêu điểm theo thứ tự xuất hiện trong cấu trúc tài liệu. Thứ tự này cũng phải khớp với thứ tự trực quan.

Hãy cẩn thận với thuộc tính order của CSS. Bạn có thể kết hợp thuộc tính này với flexbox và lưới để đặt các phần tử theo thứ tự trực quan khác với thứ tự của chúng trong HTML. Đây là một tính năng mạnh mẽ nhưng có thể gây nhầm lẫn cho những người thao tác bằng bàn phím.

Kiểm thử các trang trên trang web bằng cách sử dụng phím tab trên bàn phím để đảm bảo thứ tự nhấn phím Tab hợp lý.

Trong bảng điều khiển Hỗ trợ tiếp cận của công cụ cho nhà phát triển của trình duyệt Firefox, có một lựa chọn là Hiện thứ tự nhấn phím Tab. Khi bật chế độ này, các con số sẽ xuất hiện trên mỗi phần tử có thể lấy tiêu điểm.

Trực quan hoá thứ tự thẻ bằng Thẻ hỗ trợ tiếp cận của Firefox.

Giảm chuyển động

Ảnh động và chuyển động là những cách tuyệt vời để thổi hồn vào thiết kế web. Nhưng đối với một số người, những chuyển động này có thể gây mất phương hướng và thậm chí gây buồn nôn.

Có một truy vấn về tính năng cho biết liệu người dùng có muốn giảm chuyển động hay không. Tên của nó là prefers-reduced-motion. Hãy thêm thuộc tính này ở bất cứ nơi nào bạn đang sử dụng hiệu ứng chuyển đổi hoặc ảnh động CSS.

Browser Support

  • Chrome: 74.
  • Edge: 79.
  • Firefox: 63.
  • Safari: 10.1.

Source

a:hover {
  transform: scale(150%);
}
@media (prefers-reduced-motion: no-preference) {
  a {
    transition-duration: 0.4s;
    transition-property: transform;
  }
}

Truy vấn nội dung nghe nhìn prefers-reduced-motion dành riêng cho chuyển động trên màn hình. Nếu bạn đang sử dụng hiệu ứng chuyển đổi cho màu của một phần tử không bị ảnh hưởng bởi prefers-reduced-motion. Bạn cũng có thể chuyển đổi độ mờ và làm mờ dần. Tính năng giảm chuyển động không có nghĩa là không có ảnh động.

Voice

Mỗi người có một cách trải nghiệm web khác nhau. Không phải ai cũng xem trang web của bạn trên màn hình. Các công nghệ hỗ trợ như trình đọc màn hình sẽ chuyển đổi thông tin đầu ra thành lời nói trên màn hình.

Trình đọc màn hình hoạt động với mọi loại ứng dụng, kể cả trình duyệt web. Để trình duyệt web giao tiếp hiệu quả với trình đọc màn hình, cần có thông tin ngữ nghĩa hữu ích trong trang web đang được truy cập.

Trước đây, bạn đã tìm hiểu cách nút chỉ có biểu tượng cần có một thuộc tính để chỉ định mục đích của nút cho người dùng khiếm thị. Đây chỉ là một ví dụ về tầm quan trọng của HTML cơ bản vững chắc.

Tiêu đề

Sử dụng các tiêu đề như <h1>, <h2>, <h3>, v.v. một cách hợp lý. Trình đọc màn hình sử dụng các tiêu đề này để tạo dàn ý cho tài liệu của bạn. Bạn có thể điều hướng dàn ý bằng phím tắt.

Không nên
<div class="heading-main">Welcome to my page</div>

<div class="heading-secondary">About me</div>

<div class="heading-tertiary">My childhood</div>

<div class="heading-secondary">About this website</div>

<div class="heading-tertiary">How this site was built</div>
Nên
<h1>Welcome to my page</h1>
  <h2>About me</h2>
    <h3>My childhood</h3>
  <h2>About this website</h2>
    <h3>How this site was built</h3>

Cấu trúc

Sử dụng các phần tử điểm mốc như <main>, <nav>, <aside>, <header><footer> để cấu trúc nội dung trên trang của bạn. Sau đó, người dùng trình đọc màn hình có thể chuyển thẳng đến các điểm đánh dấu này.

Không nên
<div class="header">...</div>

<div class="navigation">...</div>

<div class="maincontent">...</div>

<div class="sidebar">...</div>

<div class="footer">...</div>
Nên
<header>...</header>
<nav>...</nav>
<main>...</main>
<aside>...</aside>
<footer>...</footer>

Biểu mẫu

Đảm bảo rằng mọi trường biểu mẫu đều có một phần tử <label> được liên kết. Bạn có thể liên kết nhãn với một trường biểu mẫu bằng cách sử dụng thuộc tính for trên phần tử <label> và thuộc tính id tương ứng trên trường biểu mẫu.

Không nên
<span class="formlabel">Your name</span>
<input type="text">
Nên
<label for="name">Your name</label>
<input id="name" type="text">

Hình ảnh

Luôn cung cấp nội dung mô tả bằng văn bản cho hình ảnh bằng thuộc tính alt.

Không nên
<img src="dog.jpg">
Nên
<img src="dog.jpg" alt="A golden retriever sitting on the grass looking happy.">

Nếu hình ảnh chỉ mang tính chất trình bày, bạn vẫn nên thêm thuộc tính alt nhưng có thể đặt giá trị trống cho thuộc tính này.

Không nên
<img src="texture.png">
Nên
<img src="texture.png" alt="">

Jake Archibald đã xuất bản một bài viết về cách viết alt văn bản hay.

Hãy cố gắng cung cấp văn bản mô tả trong các đường liên kết. Tránh sử dụng các cụm từ như "nhấp vào đây" hoặc "xem thêm".

Không nên
<p>To find out more about our latest offers, <a href="/offers.html">click here</a>.</p>
Nên
<p>Find out more about <a href="/offers.html"> our latest offers</a>.</p>

ARIA

Việc sử dụng HTML ngữ nghĩa hợp lý sẽ giúp các trang web của bạn dễ tiếp cận hơn đối với các công nghệ hỗ trợ như trình đọc màn hình và cả các đầu ra âm thanh khác như trợ lý giọng nói.

Một số tiện ích giao diện không có phần tử HTML tương ứng, bao gồm cả băng chuyền, thẻ và bảng xếp lớp. Bạn cần tạo những thành phần đó từ đầu bằng cách kết hợp HTML, CSS, JavaScript và ARIA.

ARIA là viết tắt của Accessible Rich Internet Applications (Ứng dụng Internet đa dạng có thể truy cập). Từ vựng của nó cho phép bạn cung cấp thông tin ngữ nghĩa khi không có phần tử HTML phù hợp.

Nếu cần tạo các phần tử giao diện chưa có dưới dạng phần tử HTML, hãy làm quen với ARIA.

Bạn càng thêm nhiều chức năng tuỳ chỉnh bằng JavaScript, bạn càng cần hiểu rõ về ARIA. Nếu chỉ dùng các phần tử HTML tiêu chuẩn, bạn có thể không cần dùng ARIA.

Nếu có thể, hãy kiểm thử với người dùng trình đọc màn hình thực tế. Việc này không chỉ giúp bạn hiểu rõ hơn về cách họ truy cập web mà còn giúp bạn không phải đoán mò khi thiết kế với mục tiêu hỗ trợ tiếp cận.

Thử nghiệm với người dùng thực tế là một cách tuyệt vời để phát hiện mọi giả định mà bạn có thể đang đưa ra. Trong mô-đun tiếp theo, bạn sẽ tìm hiểu về những cách mà mọi người tương tác với trang web của bạn – một lĩnh vực khác mà bạn rất dễ đưa ra giả định.

Kiểm tra kiến thức của bạn

Kiểm tra kiến thức của bạn về khả năng hỗ trợ tiếp cận

Với CSS, nhà phát triển có thể ghi đè lựa chọn ưu tiên của người dùng (chẳng hạn như cỡ chữ), liệu đây có phải là điều tồi tệ nhất không?

Đúng
Chỉ cần sử dụng body { font-size: 12px; } là đủ.
Sai
Lựa chọn ưu tiên của người dùng có ảnh hưởng lớn nhưng không mang lại quyền kiểm soát hoàn toàn.

Để tránh ghi đè lựa chọn ưu tiên về cỡ chữ của người dùng, hãy sử dụng?

Đơn vị tuyệt đối như px.
Những thành phần này không xem xét lựa chọn ưu tiên về cỡ chữ của người dùng khi được sử dụng.
Các đơn vị tương đối như rem.
Những thuộc tính này cho phép nhà phát triển tạo các độ dài bao gồm cả lựa chọn ưu tiên về cỡ chữ của người dùng.

Mọi người trên thế giới đều dùng chuột.

Đúng
Một số người dùng giọng nói, bàn phím, tay điều khiển trò chơi, trình đọc màn hình hoặc các cách khác để tương tác.
Sai
Có nhiều lựa chọn thay thế cho chuột phổ biến.

Hình ảnh có thuộc tính alt trống sẽ làm gì?

Trình duyệt sẽ tự động thêm các cookie này cho người dùng.
Không phải là một tính năng của bất kỳ trình duyệt nào.
Hình ảnh được coi là mang tính trình bày.
Giả định rằng hình ảnh không quan trọng đối với việc sử dụng nội dung.
Đọc "chuỗi trống" cho trình đọc màn hình
Đây không phải là những gì sẽ xảy ra.
Nothing
Chắc chắn sẽ có chuyện xảy ra.