• Success Criterion 2.4.3
  • Conformance level A

Disabled Controls Still Included in the Keyboard Tab Order

2.4.3 — Focus Order

Scenario

Setting

A government tax-filing portal

What’s wrong

Disabled controls included in the tab order, adding dead stops.

Example

<button class="upload-slot locked">Upload W-2 (locked)</button>
<button class="upload-slot locked">Upload 1099 (locked)</button>
<button class="upload-slot" onclick="uploadDoc()">Upload ID</button>
<!-- .locked only changes appearance; buttons remain tabbable and do nothing -->

Why it matters

A filer tabs through two locked upload buttons that look and behave like real controls but do nothing, on a form where every extra stop costs time.

How to test

Tab through the page: if disabled controls still receive focus (creating dead stops with no action), it fails.

How to fix

A genuinely disabled control is automatically removed from the tab order; don't fake the disabled look with CSS alone.

<button class="upload-slot" disabled>Upload W-2 (locked)</button>
<button class="upload-slot" disabled>Upload 1099 (locked)</button>
<button class="upload-slot" onclick="uploadDoc()">Upload ID</button>

Outcome

A filer tabs only through the steps currently available, skipping locked upload slots entirely.

Who is affected

Keyboard users filling out tax forms waste time on dead stops that visually resemble working controls.

Learn more