Hướng dẫn aria-label css

Điểm bài viết

[Tổng cộng: 3 Trung bình: 3.7]

aria-label là một thuộc tính được HTML5 cung cấp nhằm tăng cường phần giải thích cho người khuyết tật. Nó là một phần quan trọng của Web Accessibility mà Code Tốt đã giới thiếu trước đây.

aria-label là gì?

Đây là một thuộc tính được thêm vào trong HTML5 nhằm giúp giải thích nội dung hoặc hành động trên các trình đọc (screen readers) hỗ trợ người khuyết tật.

Lấy ví dụ, bạn có một nút bấm đóng popup như sau:

Nếu trong trình đọc, nó sẽ chỉ phát ra âm thanh “x” mà không giúp người dùng nhận biết hành vi nào sẽ được tiến hành.

Khi sử dụng aria-label, trình đọc sẽ phát ra âm thanh, ví dụ:

Điều này là cần thiết nhằm giúp tăng khả năng tiếp cận của người khuyết tật với website của bạn.

Các kĩ thuật triển khai aria-label

Sử dụng aria-label cần xác định hoàn cảnh và môi trường hành vi sử dụng. Một số ví dụ phổ biến dưới đây giúp ta cân nhắc sử dụng thuộc tính này một cách hợp lý.

Tình huống 1: Nút đóng trong popup/modal

Tình huống này đã được mình mô tả ở trên, tức là phần mô tả nội dung cho các nút bấm theo dạng action (không liên kết).

Tình huống 2: Sử dụng trong liên kết

Đối với các liên kết, việc gắn thêm mô tả giúp người dùng chỉ hướng tốt hơn, đặc biệt là với nhiều loại liên kết có cùng kiểu nhưng khác nội dung như “View Room”, “View Detail” đối với nhiều loại “Room” khác nhau chẳng hạn. Việc cụ thể hóa liên kết bằng cách gắn thêm thông tin là điều cần thiết.

View room
View room

Tình huống 3: Form nhập dữ liệu với mô tả

Tình huống này chỉ dấu aria-label giúp người dùng phân biệt cụ thể các loại input họ sẽ nhập.

Tình huống 4: Sử dụng kết hợp cùng thuộc tính role

Với các thuộc tính role trong HTML5, việc xác định thêm aria-label là cần thiết nhằm giúp phân tách các loại khác nhau.

      Thuộc tính arial-labelby

      Bên cạnh thuộc tính aria-label vừa nhắc đến, ta cũng cần biết cách sử dụng aria-labelby trong các trường hợp được xác định.

      arial-labelby khác biệt đôi chút vì yêu cầu xác định đối tượng sẽ đóng vai trò label trong một khu vực. Nói thì khó nhưng tham khảo ví dụ dưới đây sẽ thấy rất dễ hiểu:

      Welcome to our team

      Thực chất, nó giống như một chỉ định vào 1 element có chứa id để screen reader có thể đọc. Cũng bởi nguyên do trên, nó yêu cầu:

      • Element chỉ định cần phải sử dụng thuộc tính id="".
      • Element không bắt buộc nằm trong hay nằm ngoài, miễn là nó xác định trong document là được.
      • aria-labelby sẽ ghi đè nếu có các thuộc tính khác, như aria-label hay tag

      Một ví dụ khác về aria-labelby để các bạn nắm được rõ hơn:

      Types
      

      Tài liệu tham khảo

      • Sử dụng aria-label – MDN
      • ARIA14: Sử dụng aria-label để cung cấp nhãn ẩn tại các nơi nhãn không hiển thị
      • ARIA Labels and Relationships – Google Web Fundamentals

      Các bạn quan tâm có thể tham khảo khóa học Web Accessibility Compliance (TreeHouse) để nắm vững hơn nhé.

      3.6 9 đánh giá

      Đánh giá bài viết

      Post Views: 3.568

      Điều hướng bài viết

      The aria-label attribute defines a string value that labels an interactive element.

      Description

      Sometimes the default accessible name of an element is missing, or does not accurately describe its contents, and there is no content visible in the DOM that can be associated with the object to give it meaning. A common example is a button containing an SVG or icon font (which you shouldn't be using) without any text.

      In cases where an interactive element has no accessible name, or an accessible name that isn't accurate, and there is no content visible in the DOM that can be referenced via the aria-labelledby attribute, the aria-label attribute can be used to define a string that labels the interactive element on which it is set. This provides the element with its accessible name.

      <button aria-label="Close" onclick="myDialog.close()">
        <svg aria-hidden="true" focusable="false" width="17" height="17" xmlns="http://www.w3.org/2000/svg"><path d="m.967 14.217 5.8-5.906-5.765-5.89L3.094.26l5.783 5.888L14.66.26l2.092 2.162-5.766 5.889 5.801 5.906-2.092 2.162-5.818-5.924-5.818 5.924-2.092-2.162Z" fill="#000"/>svg>
      button>
      

      Note: aria-label is intended for use on interactive elements, or elements made to be interactive via other ARIA declarations, when there is no appropriate text visible in the DOM that could be referenced as a label

      Most content has an accessible name generated from its immediate wrapping element's text content. Accessible names can also be created by certain attributes or associated elements.

      By default, a button's accessible name is the content between the opening and closing