Skip to content

fix(tab-button): restore keyboard focus - #31568

Open
cpruijsen wants to merge 1 commit into
ionic-team:mainfrom
cpruijsen:fix/issue-30648
Open

cpruijsen wants to merge 1 commit into
ionic-team:mainfrom
cpruijsen:fix/issue-30648

Conversation

@cpruijsen

Copy link
Copy Markdown

Enabled ion-tab-button controls without href can now receive keyboard focus.

Issue number: resolves #30648


What is the current behavior?

Tab navigation skips enabled ion-tab-button controls without href because the native anchor has no tabindex.

What is the new behavior?

  • core/src/components/tab-button/tab-button.tsx sets tabindex="0" on the native anchor when an enabled tab button has no href.
  • Focus also works after removal of an existing href.
  • Defined href values retain native anchor focus behavior. Disabled controls retain tabindex="-1".
  • Spec tests cover missing href, href removal, and disabled state. The accessibility fixture also includes a tab button without href.

Does this introduce a breaking change?

  • Yes
  • No

Other information

The native <a> keeps the component's DOM structure and existing href behavior.

The missing-href and href-removal assertions fail against baseline source and pass with the change.
Accessibility tests passed across iOS/MD and LTR/RTL variants.

@cpruijsen
cpruijsen requested a review from a team as a code owner October 13, 2026 19:57
@vercel

vercel Bot commented Oct 13, 2026

Copy link
Copy Markdown

@cpruijsen is attempting to deploy a commit to the Ionic Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added the package: core @ionic/core package label Oct 13, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: core @ionic/core package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: ion-tab-button isn't focusable when no href

1 participant