nuxt / nuxt/ui

Allow customizing or disabling the row tabindex for clickable rows

Open
#6,710 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

triage
Dominant language
TypeScript
Stars
6.9k
Forks
1.1k
Avg merge
1d 7h
Merged PRs (30d)
57

Description

Package

v4.x

Description

When using the row select event (@select) as shown in the documentation:
https://ui.nuxt.com/docs/components/table#with-row-select-event

the generated elements receive tabindex="0", making every row part of the keyboard tab order.

In large tables, this means users have to tab through potentially hundreds of rows before reaching the next focusable element, which can significantly hurt keyboard navigation.

It would be great if there were a way to customize this behavior, for example:

rowTabIndex?: number (e.g. -1)
focusableRows?: boolean

or a more generic rowAttrs/trAttrs prop to override attributes on the generated elements.

This would allow developers to keep rows clickable with the mouse while removing them from the sequential tab order when appropriate, without resorting to DOM manipulation after render.

Thanks for considering this!

Additional context

No response

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 Table documentation at ui.nuxt.com/docs/components/table#with-row-select-event and trace how clickable rows receive tabindex="0". Review the table component implementation to determine the supported customization point, then verify that row keyboard behavior can be customized or disabled without breaking row selection.

Written by the indexing model from the issue text.

Assessment

Tech stack
nuxt, typescript
Domain
frontend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
56/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.