---
title: "Interactive controls are nested (a11y/nested-interactive)"
description: "a11y/nested-interactive: A button inside a link (or similar) confuses focus order and screen-reader announcements."
canonical: https://void-design.vercel.app/rules/a11y/nested-interactive
lastModified: 2026-09-16
---

# Interactive controls are nested

`a11y/nested-interactive` · severity **error** · category Accessibility · detected by `void a11y` and `void audit`

## Why it matters

A button inside a link (or similar) confuses focus order and screen-reader announcements.

## How to fix it

Un-nest the controls; make the card a single link or separate actions.

## References

- https://dequeuniversity.com/rules/axe/4.13/nested-interactive

## More accessibility rules

`void a11y` reports 48 rules in this category. WCAG 2.2 AA through axe-core, plus checks axe can't do alone: visible keyboard focus, 24/44px target size on mobile, 320px reflow and disabled zoom.

- `aria-command-name` ARIA button/link/menuitem has no accessible name — [a11y/aria-command-name](https://void-design.vercel.app/rules/a11y/aria-command-name)
- `aria-input-field-name` ARIA input field has no accessible name — [a11y/aria-input-field-name](https://void-design.vercel.app/rules/a11y/aria-input-field-name)
- `aria-toggle-field-name` ARIA toggle has no accessible name — [a11y/aria-toggle-field-name](https://void-design.vercel.app/rules/a11y/aria-toggle-field-name)
- `aria-prohibited-attr` ARIA attribute is prohibited for this role — [a11y/aria-prohibited-attr](https://void-design.vercel.app/rules/a11y/aria-prohibited-attr)
- `duplicate-id-aria` Duplicate id referenced by ARIA — [a11y/duplicate-id-aria](https://void-design.vercel.app/rules/a11y/duplicate-id-aria)
- `frame-title` <iframe> has no title — [a11y/frame-title](https://void-design.vercel.app/rules/a11y/frame-title)
- `svg-img-alt` SVG image has no text alternative — [a11y/svg-img-alt](https://void-design.vercel.app/rules/a11y/svg-img-alt)
- `role-img-alt` role="img" element has no text alternative — [a11y/role-img-alt](https://void-design.vercel.app/rules/a11y/role-img-alt)

Detected by `void a11y` and `void audit`. Explain it in a terminal: `void rules a11y/nested-interactive`
