reactjs / reactjs/react.dev

[Beta] Inaccessible UI Components

Đang mở
#4,696 6 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
JavaScript
Star
11.8k
Fork
7.9k
Merge trung bình
1 ngày 11 giờ
Pull request đã merge (30 ngày)
11

Mô tả

Accordion a11y issues

  • When an Accordion trigger is focused, pressing down/up should focus the next/previous trigger.
  • When an Accordion trigger is focused, pressing space should expand/contract its panel.
  • The Accordion trigger should be a <button> rather than a <a>.
  • The Accordion trigger should be wrapped in a h tag.
  • The Accordion trigger should have an aria-expanded attr set to true when open.
  • The Accordion trigger should have an aria-controls attr.

The same goes for the Tabs component (found in the sidebar and on code blocks), it fails a11y in many ways. I'd suggest you look at UI libs like Radix or ReachUI which provide high-quality, accessible UI components.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách xác định các component Accordion và Tabs được sử dụng trong thanh bên và các khối mã, sau đó so sánh hành vi của chúng với các tài liệu tham chiếu của Radix và ReachUI được liên kết trong issue. Công việc được xem là hoàn tất khi các tương tác bàn phím được liệt kê cùng các yêu cầu về button, heading, aria-expanded và aria-controls đã được xử lý cho cả hai component.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript, react
Lĩnh vực
accessibility, frontend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.