Daily Accessibility ReviewForm Inputs Missing Accessible Labels in Ports Components #17812
Unanswered
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Problem
Multiple
<input>and<select>form controls in table-like layouts lack programmatically associated labels. The column headers are rendered as plain text in sibling elements — not as<label>elements or viaaria-label/aria-labelledby— so screen readers cannot announce the purpose of each field.Affected Files
shell/components/form/Ports.vue(lines 158–207)The table uses
<th>header cells ("Listening Port", "Protocol", "Target Port", "Exposed", "Host Port"), but the<input>and<select>elements inside<td>cells have noaria-labelorid/<label for>association:shell/components/form/ServicePorts.vue(lines 185–241)This component uses
<div>elements for column headers (not<th>) and plain<input>elements without any label association:All four fields (Name, Listening Port, Target Port, Node Port) are missing accessible labels.
WCAG 2.2 References
WCAG 2.2 § 1.3.1 – Info and Relationships (Level A)
Column header context conveyed visually via layout but not programmatically linked to inputs.
WCAG 2.2 § 4.1.2 – Name, Role, Value (Level A)
Form inputs without accessible names violate this criterion.
WCAG 2.2 § 1.3.5 – Identify Input Purpose (Level AA)
Suggested Fix
Add
aria-labelattributes to each input, incorporating the row index for uniqueness:Beta Was this translation helpful? Give feedback.
All reactions