sefe / sefe/dorc

Grid row-click gating blocks keyboard and touch users from opening details

Open
#618 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
5
Forks
3
Avg merge
1d 22h
Merged PRs (30d)
14

Description

Background

While addressing Copilot review feedback on #584, four related comments surfaced a consistent keyboard-accessibility regression in the monitor grids. The PR intentionally gates onRowClick on _pointerActive (set only via @mousedown) so that programmatic row activation doesn't open the details panel — a good fix for the original bug, but it means keyboard and touch/pointer users now have no way to open details on those grids.

Four affected call sites, same root pattern:

File Lines
src/dorc-web/src/components/environment-tabs/env-monitor.ts 189 (mousedown gating), 654 (onRowClick early-return)
src/dorc-web/src/pages/page-monitor-requests.ts 186 (mousedown gating), 707 (onRowClick early-return)

These need to be fixed together, not one commit per component, so they were deferred from #584 rather than partially applied.

Proposed approach

Apply the same fix to both grids:

  1. Broaden pointer gating — replace @mousedown with @pointerdown (covers mouse, touch, pen) and/or @click, so touch users on tablets/phones can also open details.
  2. Add keyboard activation — handle Enter and Space on the currently active row. The grid's active-item-changed still fires on keyboard navigation; instead of discarding those events when _pointerActive is false, treat a keyboard commit (keydown with Enter/Space) as an explicit "open details" signal equivalent to a click.
  3. Consider an accessible secondary affordance — an explicit details button or overflow menu item per row would remove the ambiguity entirely. Worth weighing against the UX goal of "click row = open" that drove the original change.

Acceptance criteria

  • Mouse click on a row opens details (regression check — current behaviour).
  • Tap on a row (touch device) opens details.
  • Keyboard user navigating rows with arrow keys and pressing Enter/Space opens details.
  • Programmatic active-item-changed events (e.g. from code that sets grid.activeItem) do not open details — preserves the bug #584 originally fixed.

Context

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the row handling at the cited lines in src/dorc-web/src/components/environment-tabs/env-monitor.ts and src/dorc-web/src/pages/page-monitor-requests.ts, then review the linked PR #584 discussions. Trace how pointer, keyboard, and programmatic active-item-changed events reach onRowClick. Done means mouse, touch, Enter, and Space open details while programmatic activation does not, in both grids.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
accessibility, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.