Accessibility: Zoho form honeypot input sits silently in DOM #194

Closed
opened 2026-05-29 16:45:55 -05:00 by null · 1 comment
Owner

Severity: Minor

Description: The honeypot input in Contact.jsx has aria-hidden="true" and readOnly. Low risk but could confuse screen readers.

File: src/pages/Contact.jsx lines 242-243

Fix direction: Move honeypot outside the <form> or use tabIndex={-1} instead of readOnly.

**Severity:** Minor **Description:** The honeypot input in Contact.jsx has `aria-hidden="true"` and `readOnly`. Low risk but could confuse screen readers. **File:** `src/pages/Contact.jsx` lines 242-243 **Fix direction:** Move honeypot outside the `<form>` or use `tabIndex={-1}` instead of `readOnly`.
null added the
bug
accessibility
labels 2026-05-29 16:45:55 -05:00
null added this to the Batch 10 — Accessibility WCAG 2.1 AA milestone 2026-08-18 01:24:53 -05:00
Author
Owner

Already correct in the current code — the issue describes attributes that are not there.

It states the honeypot has aria-hidden='true' and readOnly, and proposes using tabIndex={-1} instead of readOnly.

src/pages/Contact.jsx:277-286 as it stands:

type='text' name='company_website' tabIndex={-1} autoComplete='off'
aria-hidden='true' style={{ display: 'none' }}

There is no readOnly. tabIndex={-1} is already there — the exact change this issue asks for. And the decisive attribute is style={{display:'none'}}: a display:none element is removed from the accessibility tree entirely, so no screen reader ever reaches it, which is a stronger guarantee than either aria-hidden or moving the field outside the form.

Closing as no change required.

Verify: read src/pages/Contact.jsx around the 'Honeypot' comment — the input carries tabIndex={-1} and display:none, and carries no readOnly attribute.

Already correct in the current code — the issue describes attributes that are not there. It states the honeypot has aria-hidden='true' and readOnly, and proposes using tabIndex={-1} instead of readOnly. src/pages/Contact.jsx:277-286 as it stands: type='text' name='company_website' tabIndex={-1} autoComplete='off' aria-hidden='true' style={{ display: 'none' }} There is no readOnly. tabIndex={-1} is already there — the exact change this issue asks for. And the decisive attribute is style={{display:'none'}}: a display:none element is removed from the accessibility tree entirely, so no screen reader ever reaches it, which is a stronger guarantee than either aria-hidden or moving the field outside the form. Closing as no change required. Verify: read src/pages/Contact.jsx around the 'Honeypot' comment — the input carries tabIndex={-1} and display:none, and carries no readOnly attribute.
null closed this issue 2026-08-18 02:32:08 -05:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: null/Queue-North-Website#194
No description provided.