Accessibility: hover-only tooltips, misused tablist roles, and a layout table

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

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

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
58/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
typescript
Lĩnh vực
accessibility, frontend

Hướng nghiên cứu

Bắt đầu bằng cách đọc các thành phần Svelte bị ảnh hưởng: ArchChat.svelte, ArchTracePanel.svelte, GeoScene.svelte, GeometryLab.svelte, FinetunePanel, TrainPanel, AttentionView và tab Info. Kiểm tra hành vi hiện có của con trỏ, tiêu điểm và lựa chọn trước khi thực hiện thay đổi. Hoàn thành nghĩa là các tooltip và nhãn hình cầu có thể được truy cập bằng bàn phím và cảm ứng, các control cung cấp trạng thái hợp lệ cho công nghệ hỗ trợ, và bảng chú giải ký hiệu có ngữ nghĩa description-list chính xác.

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

Mô tả

Collected by an adversarial accessibility pass during feature 005. All pre-existing; none
blocks the documentation work, but each makes real information unreachable for some users.

1. Hover-only tooltips (highest impact)

Token probabilities, sphere labels and residual-norm bars are all onmousemove /
onmouseleave on role="note" elements with no tabindex:

  • ArchChat.svelte (reply tokens — the per-token probability and its top-5 alternatives)
  • ArchTracePanel.svelte (token chips, norm bars)
  • GeoScene.svelte (sphere dot labels, pointermove)

Keyboard users cannot reach them; touch users effectively cannot either. For the reply
tokens the tooltip is the only place the alternatives appear.

Fix: tabindex="0" plus onfocus/onblur mirroring showTip/hideTip; show the sphere
label on pointerdown as well as pointermove.

2. role="tablist" on things that are not tabs

GeometryLab.svelte field/layer segmented pickers carry role="tablist" but their children
have no role="tab", no aria-selected, and there is no tabpanel. A screen reader
announces a tab list containing nothing it recognises, and the active field/layer is never
conveyed. FinetunePanel/TrainPanel/AttentionView set role="tab"/aria-selected but
still have no tabpanel, aria-controls, or arrow-key handling.

Fix: role="radiogroup" + role="radio" aria-checked, or drop the roles and use
aria-pressed on the buttons (they already behave as toggles).

3. The Info tab's notation table is a layout table

Four columns alternating symbol/definition with no <thead>/<th>. It is a glossary, so
assistive tech reads two unrelated pairs as one row.

Fix: a <dl> with display: grid; grid-template-columns: auto 1fr auto 1fr — same visuals,
correct semantics, and it collapses to two columns on a phone for free.

Already fixed in feature 005

Equation blocks and tables are now keyboard-scrollable (tabindex="0" on the scroll
container, white-space: nowrap so overflow-x actually engages); <table display:block>
no longer strips table semantics; Explain titles are exposed as headings for heading
navigation; Explain summaries wrap on narrow screens.

Ngôn ngữ chính
TypeScript
Star
2
Fork
0
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Không có mẫu pull request
  • Không có 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.

Issue khác của ContextLab/llm-geometry

Tất cả issue của ContextLab/llm-geometry

Issue tương tự

Thêm issue về TypeScript

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.