Skip to content
SkillCodex
Menu

Data grid

Data grid

An interactive tabular composite that manages one keyboard entry point and directional focus among cells, often adding editing or selection.

Try the component
Context, sources and actions
Sources and revision
Updated
Version
v1.0.26 · r1
Sources
5 sources
Status
Published
Read the sources

You may have searched for: move through cells with arrow keysedit values like a spreadsheetselect a row without tabbing through every cell

All phrasings
Save and share

Recognize

Structure and explore data

Try it

Should people read tabular data, interact cell by cell, or expand a hierarchy?

Data grid

Shared trial context

A workspace presents a large information set whose structure and interaction model determine how people scan, edit, or expand it.

Data grid

Mission

Data grid

Tab into the grid, arrow to Status, enter edit mode, choose a value, return to navigation, and select the row.

Name
Status
Owner
Atlas
Ready
Amina
Beacon
Review
Léo

Tab enters once · Arrows move focus · Enter edits Status · Shift+Space selects the row

Live result

The managed entry point is Atlas; no row is selected.

Step 1 of 3

Try

Try the component. Your live result appears just above. Move on at your own pace.

Behavior and edge case
What to observe
Exactly one cell is active and no row is selected.
Edge case
A cell editor temporarily consumes Arrow keys, then Escape restores grid navigation to the same cell.

What this example shows

Data grid owns focus movement as a composite widget; Table leaves static cells in document reading order, while Tree view uses parent-child expansion instead of rows and columns.

Which fits your need?

Data grid

Large tabular data needs efficient keyboard navigation

Table

People compare values across rows and columns

Which component will you use here?
Difference and sources

Data grid owns focus movement as a composite widget; Table leaves static cells in document reading order, while Tree view uses parent-child expansion instead of rows and columns.

Read the sources

    Parts of the specimen

    Select a numbered marker on the schematic, or use the list below, to see its role. The schematic shows the concept's representative state.

    Table

    The tabular container that preserves row and column relationships.

    Position in the atlas

    Relationship map

    Locate the chapter, neighboring concepts, and the next useful decision.

    • Chapter

      Structure and explore data

      Data grid belongs to this comparison group.

    • Do not confuse

      Table

      Choose Data grid if the user edits, selects, or navigates many cells with the keyboard. Choose Table if the data is read and compared without interaction inside the cells.

      Compare this pair
    • Do not confuse

      Tree view

      Choose Data grid if the data is tabular and the user edits or navigates many cells efficiently. Choose Tree view if the structure is a real hierarchy, like folders, that the user expands level by level.

      Compare this pair
    • Next step

      Compare the concepts in the chapter before choosing an implementation.

      Open the chapter

    In your own words

    Understand

    What people describe

    Documented aliases: interactive table, editable grid, spreadsheet grid

    • move through cells with arrow keys
    • edit values like a spreadsheet
    • select a row without tabbing through every cell
    • sort and filter an interactive dataset
    • keep one grid cell in the tab order
    • navigate a large table as one widget

    Choose

    Use it when

    • Large tabular data needs efficient keyboard navigation
    • Cells or rows support editing, selection, or many actions

    Avoid it when

    • The data is static and read-only
    • The team cannot implement and test composite focus completely

    Compare

    Compare similar concepts

    Verification checklist

    Try these actions in the lab, then check the same behaviours in your agent’s result. Adapt the example names to your interface.

    1. 1. Do this

      Enter the grid with Tab, then move between cells with the arrow keys.

      Expected result

      The grid acts as one keyboard stop, the active cell remains visible, and arrow keys move within the grid.

    2. 2. Do this

      On an editable cell, start editing with Enter or F2, change its value using the editor’s controls, then press Escape.

      Expected result

      Editing keys operate on the editor; Escape leaves editing and returns to navigation on the same cell.

    3. 3. Do this

      Use the grid’s stated selection command if available, then leave navigation mode with Tab.

      Expected result

      Selection is distinguishable from the active cell, and Tab reaches the next control instead of trapping you in the grid.

    Full contract
    1. 1One cell or descendant is tabbable
    2. 2Every Arrow destination is focusable and labelled
    3. 3Edit mode has a clear entry and exit
    4. 4Focus and selection look different
    5. 5Virtualized indices and counts are exposed

    Understand → Recognize → Choose → Compare

    Pack for your agent

    Pre-written instructions to paste into your agent. Copying executes nothing.

    Implement correctly

    Build Data grid without breaking its behavior

    # Implement Data grid in your agent
    
    ## Objective
    Implement Data grid for this verified behavior: An interactive tabular composite that manages one keyboard entry point and directional focus among cells, often adding editing or selection.
    
    ## Prerequisites
    - Inspect the repository, design system, and existing tests first.
    - Preserve unrelated changes and keep the file scope bounded.
    - Confirm that Data grid matches the need before writing code.
    
    ## Required behavior
    - Arrow, Home, and End keys move one managed focus point through the two-dimensional grid.
    - Activation or a documented edit command enters a cell control, then returns to grid navigation predictably.
    
    ## States to cover
    - Grid ready
    - Cell active
    - Cell editing
    - Row selected
    
    ## Accessibility
    - ARIA role: grid > row > (columnheader | rowheader | gridcell)
    - The primary control or named region for Data grid has a stable accessible name from visible text or an explicit programmatic label; placeholder text and tooltips are not names.
    - Use one consistent roving-tabindex or aria-activedescendant strategy, keep the active cell visible, and never put every cell in the page tab sequence.
    - The grid is not dismissed; Escape exits cell interaction and restores grid navigation.
    - The grid has a name; focus exposes row and column context, selection or editing state, and correct virtualized counts and indices.
    - Tab enters at one managed cell and a later Tab exits
    - Arrow keys move among cells; Home and End move within a row
    - Control+Home and Control+End reach grid bounds
    - Enter or F2 enters cell interaction and Escape returns
    - Selection shortcuts exist only for the declared model
    
    ## When not to use
    - The data is static and read-only
    - The team cannot implement and test composite focus completely
    
    ## Acceptance criteria
    - One cell or descendant is tabbable
    - Every Arrow destination is focusable and labelled
    - Edit mode has a clear entry and exit
    - Focus and selection look different
    - Virtualized indices and counts are exposed
    
    ## Guardrails
    - Show the proposed changes before any external action.
    - Do not publish, send, delete, pay for, or change remote state without explicit authorization.
    - Preserve unrelated changes and stop if the scope becomes ambiguous.
    
    ## Output format
    - Outcome or verdict.
    - Files or actions involved.
    - Checks run and observable evidence.
    - Remaining blockers or limitations.
    
    • Web platform
    • Requires · Access to the repository, design system, and tests
    Why it works
    • The need is tied to canonical behavior before any technical choice.
    • States, accessibility, and non-goals prevent a merely visual implementation.
    • Acceptance criteria and the output format make verification observable.

    Try next

    Verify Data grid on a real journey

    # Verify Data grid after implementation
    
    ## Objective
    Audit the Data grid implementation against its behavior, states, and accessibility requirements without changing it automatically.
    
    ## Checks
    - Replay the smallest representative journey.
    - Check keyboard behavior, focus, accessible name, and announcements.
    - Tie each gap to a specific acceptance criterion.
    
    ## Guardrails
    - Show the proposed changes before any external action.
    - Do not publish, send, delete, pay for, or change remote state without explicit authorization.
    - Preserve unrelated changes and stop if the scope becomes ambiguous.
    
    ## Output format
    - Outcome or verdict.
    - Files or actions involved.
    - Checks run and observable evidence.
    - Remaining blockers or limitations.
    

    sha256:a9623f01d42c632dad3cbf46bb98c1c895bb32bd07d5b905f049d4819e875cd9

    Diagnose a problem

    Find and fix the Data grid defect

    # Debug Data grid in your agent
    
    ## Observed symptom
    [DESCRIBE THE SYMPTOM HERE]
    
    ## Observable checks
    - Reproduce the issue with the smallest relevant journey.
    - Compare behavior with the documented states and transitions for Data grid.
    - Verify keyboard behavior, focus, accessible name, and announcements.
    
    ## Possible causes
    - The chosen primitive does not match the expected behavior.
    - A state, transition, or focus return is missing.
    - A neighboring component captures an event or hides an accessible signal.
    
    ## Bounded corrections
    - Fix the reproduced cause without recreating neighboring components.
    - Preserve the public contract and add a focused regression test.
    - Do not install dependencies or change remote state without authorization.
    
    ## Final verification
    - One cell or descendant is tabbable
    - Every Arrow destination is focusable and labelled
    - Edit mode has a clear entry and exit
    - Focus and selection look different
    - Virtualized indices and counts are exposed
    
    ## Guardrails
    - Show the proposed changes before any external action.
    - Do not publish, send, delete, pay for, or change remote state without explicit authorization.
    - Preserve unrelated changes and stop if the scope becomes ambiguous.
    
    ## Output format
    - Outcome or verdict.
    - Files or actions involved.
    - Checks run and observable evidence.
    - Remaining blockers or limitations.
    
    • Web platform
    • Requires · Access to the repository, design system, and tests
    Why it works
    • The explicit symptom prevents starting from an assumed fix.
    • Checks separate behavior, accessibility, and neighboring interference.
    • The fix stays bounded and must produce regression evidence.

    Try next

    Lock in the Data grid fix

    # Prevent the Data grid regression
    
    ## Objective
    Turn the reproduced cause into a focused regression test and compare Data grid with neighboring concepts before widening the fix.
    
    ## Checks
    - Prove that the test fails before the fix.
    - Prove that it passes after the bounded fix.
    - Verify that no neighboring component changed behavior.
    
    ## Guardrails
    - Show the proposed changes before any external action.
    - Do not publish, send, delete, pay for, or change remote state without explicit authorization.
    - Preserve unrelated changes and stop if the scope becomes ambiguous.
    
    ## Output format
    - Outcome or verdict.
    - Files or actions involved.
    - Checks run and observable evidence.
    - Remaining blockers or limitations.
    

    sha256:229ee6bf53e6bfb9ee7060434bee4a1e6630c44301158d5a9c7275ca00d2a25c

    Full entry, saving and provenance

    Pre-written instruction by SkillCodex — your request is neither sent nor used to adapt this text; no content is generated, and copying executes nothing.

    Pack digest: sha256:93fe80902eea2bbd3ad9644ef56377019e0edfa503defee932a225c2c0c36b0f

    In code

    TechnologyPrimitiveVersionCaveat
    Web platform

    div or table with managed cell focus

    NativeARIA grid is an implementation obligation, not decoration: supply one tab stop, complete directional focus, cell operation, and tested selection behavior.

    Technical details

    Behaviors

    • Navigate cells

      Arrow, Home, and End keys move one managed focus point through the two-dimensional grid.

    • Operate the active cell

      Activation or a documented edit command enters a cell control, then returns to grid navigation predictably.

    States

    • Grid ready

      Grid ready

    • Cell active

      Cell active

    • Cell editing

      Cell editing

    • Row selected

      Row selected

    State transitions

    • Grid ready → Cell active

      Tab enters at the single tabbable cell.

    • Cell active → Cell editing

      Enter or F2 starts editing without losing row and column context.

    • Cell editing → Cell active

      Enter commits the value and returns to grid navigation; Escape cancels with the same focus return.

    • Cell active → Row selected

      Shift+Space selects the focused row when the declared selection model enables it.

    • Row selected → Cell active

      An Arrow key moves focus without silently clearing or following selection.

    Test scenarios

    Context
    An inventory grid exposes Name, Status, and Owner, with Status editable in place.
    Mission
    Tab into the grid, arrow to Status, enter edit mode, choose a value, return to navigation, and select the row.
    Primary state
    Exactly one cell is active and no row is selected.
    Edge case
    A cell editor temporarily consumes Arrow keys, then Escape restores grid navigation to the same cell.

    Visual signals

    • Tabular rows, columns, and headers
    • Visible focus on one active cell
    • Editing and selection cues distinct from focus

    Behavioral signals

    • One managed entry point shortens the page tab sequence
    • Directional keys move cell focus
    • Explicit commands enter and leave cell interaction

    Accessibility

    Role
    grid > row > (columnheader | rowheader | gridcell)
    Accessible name
    The primary control or named region for Data grid has a stable accessible name from visible text or an explicit programmatic label; placeholder text and tooltips are not names.
    Focus
    Use one consistent roving-tabindex or aria-activedescendant strategy, keep the active cell visible, and never put every cell in the page tab sequence.
    Dismissal
    The grid is not dismissed; Escape exits cell interaction and restores grid navigation.
    Scroll
    Horizontal and vertical overflow preserve header relationships, the active reading position, and visible keyboard focus without reordering data.
    Announcement
    The grid has a name; focus exposes row and column context, selection or editing state, and correct virtualized counts and indices.
    Keyboard
    • Tab enters at one managed cell and a later Tab exits
    • Arrow keys move among cells; Home and End move within a row
    • Control+Home and Control+End reach grid bounds
    • Enter or F2 enters cell interaction and Escape returns
    • Selection shortcuts exist only for the declared model

    Bindings

    Open the HTML, ARIA, Radix, and shadcn matrix
    • div or table with managed cell focus

      implementationKind
      custom
      nativeElement
      div or table with managed cell focus
      ariaPattern
      grid with row, columnheader, rowheader, and gridcell
      radixPrimitive
      Not applicable
      shadcnRecipe
      Not applicable
      runtimeDependency
      Not applicable
      packageName
      Not applicable
      exportName
      Not applicable
      exactVersion
      Not applicable
      status
      exception
      sourceId
      source-ui-aria-grid
      deprecationStatus
      active
      replacement
      Not applicable
      validFrom
      Not applicable
      validUntil
      Not applicable

      Equivalence caveat: ARIA grid is an implementation obligation, not decoration: supply one tab stop, complete directional focus, cell operation, and tested selection behavior.

      Verify binding source

    Sources

    • WAI-ARIA APG: Grid Pattern
      sourceId
      source-ui-aria-grid
      kind
      documentation
      canonicalUrl
      https://www.w3.org/WAI/ARIA/apg/patterns/grid/
      publisher
      W3C WAI
      sourceRevision
      http-last-modified:2026-08-07T07:06:02Z
      consultedAt
      2026-08-10
      license
      Not stated
      contentDigest
      sha256:01ffcad0d09b46665aa78b83a9b57177fdaba3db35771dacc2ee1dbb56285453
      status
      verified

      Claim covered: Data grid: informative APG guidance for the interactive data grid pattern: roles, states, relationships, and keyboard interaction.

    • WAI-ARIA 1.2: Roles Model
      sourceId
      source-ui-wai-aria-roles
      kind
      standard
      canonicalUrl
      https://www.w3.org/TR/wai-aria-1.2/#roles
      publisher
      W3C WAI
      sourceRevision
      W3C-REC-wai-aria-1.2-20230606
      consultedAt
      2026-07-19
      license
      Not stated
      contentDigest
      sha256:c0fea16fc747779569ab754d2d25bca3e2b7e8a673b8ef5362aeb9ebc73a4849
      status
      verified

      Claim covered: Data grid: normative ARIA role definitions and constraints for the stated accessible role.

    • WCAG 2.2: Focus Appearance
      sourceId
      source-ui-wcag-understanding-focus-appearance
      kind
      documentation
      canonicalUrl
      https://www.w3.org/WAI/WCAG22/Understanding/focus-appearance.html
      publisher
      W3C WAI
      sourceRevision
      http-last-modified:2026-07-02T10:07:49Z
      consultedAt
      2026-07-19
      license
      Not stated
      contentDigest
      sha256:fdcf316a1f0e3cc758eda9618322d132862124ff0a3f3b1a3acbf20daf804ff0
      status
      verified

      Claim covered: Data grid: informative WCAG guidance for evaluating visible keyboard focus appearance.

    • WAI-ARIA 1.2: Live Region Attributes
      sourceId
      source-ui-wai-aria-live-regions
      kind
      standard
      canonicalUrl
      https://www.w3.org/TR/wai-aria-1.2/#attrs_liveregions
      publisher
      W3C WAI
      sourceRevision
      W3C-REC-wai-aria-1.2-20230606
      consultedAt
      2026-07-19
      license
      Not stated
      contentDigest
      sha256:c0fea16fc747779569ab754d2d25bca3e2b7e8a673b8ef5362aeb9ebc73a4849
      status
      verified

      Claim covered: Data grid: normative live-region properties for status announcement behavior.

    • WCAG 2.2: Status Messages
      sourceId
      source-ui-wcag-understanding-status-messages
      kind
      documentation
      canonicalUrl
      https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html
      publisher
      W3C WAI
      sourceRevision
      http-last-modified:2026-07-02T10:07:49Z
      consultedAt
      2026-07-19
      license
      Not stated
      contentDigest
      sha256:cf2a8c16b20c1a94164c9a37e2b3f15d9a7d3f47d88385d47432d6a29655609e
      status
      verified

      Claim covered: Data grid: informative WCAG guidance for status messages announced without moving focus.