openui / openui/open-ui

[focusgroupV2] Define when grid topology can be inferred automatically

Open
#1,496 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

focusgroup
Dominant language
MDX
Stars
4.5k
Forks
226
Avg merge
2d 22h
Merged PRs (30d)
4

Description

Focusgroup V2 currently has two explicit topology paths:

  • focusgroup="grid" discovers native HTML table structure.
  • focusgroup="grid manual" discovers direct-child rows marked with focusgrouprow.

Native tables provide an unambiguous automatic case. Simple generic markup may also contain enough structural information to infer rows and cells:

<div focusgroup="grid" aria-label="Palette">
  <div focusgrouprow>
    <div tabindex="0">Bold</div>
    <div tabindex="0">Italic</div>
  </div>
  <div focusgrouprow>
    <div tabindex="0">Left</div>
    <div tabindex="0">Right</div>
  </div>
</div>

Inference becomes less reliable when markup contains wrappers or multiple plausible row levels:

<div focusgroup="grid" aria-label="Palette">
  <div class="scrollport">
    <div focusgrouprow>
      <div tabindex="0">Bold</div>
      <div tabindex="0">Italic</div>
    </div>
  </div>
</div>

We should determine how much topology user agents can infer safely and where authors must provide explicit signals.

Questions to resolve:

  1. Is the presence of focusgrouprow sufficient to select generic topology?
  2. Which structural wrappers, if any, can be transparent to row discovery?
  3. What happens when multiple plausible row levels exist?
  4. How should mixed native and generic structures behave?
  5. Can mutations change the inferred topology mode?
  6. Is manual still useful as an explicit override or disambiguation signal?

When topology is ambiguous, invalidating the grid may be safer than selecting a plausible structure that can change unexpectedly. Authored ARIA roles should not select or alter focus topology.

Related:

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 Focusgroup V2 explainer sections on automatic table topology and manual row enrollment, then read the linked PR #1494 review discussion. Define rules covering generic and native structures, wrappers, ambiguity, mixed markup, mutations, and the manual override; the work is done when these behaviors are resolved and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
html
Domain
accessibility, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.