Setyenv · Docs
  • English
  • Español
  • 中文
  • 日本語
  • العربية
  • Deutsch
  • Français
  • हिन्दी
  • Bahasa Indonesia
  • Italiano
  • Nederlands
  • Português
  • Русский
  • Türkçe

Accessibility floor

The front-end mount components ship the following a11y primitives:

  • All form controls have a <label for="…"> linked to their input id; required fields get a CSS-marked star via .pfm-field-required.
  • Form root carries aria-busy during submission.
  • Success banner uses role="status" + aria-live="polite" and focuses itself on appearance so screen readers announce it.
  • Error banners use role="alert" + aria-live="assertive".
  • Honeypot wrapper is aria-hidden="true" + tabindex="-1" so it is invisible to assistive tech and unreachable by keyboard.
  • Action button surfaces aria-busy during invocation.
  • Logical CSS properties throughout (margin-inline-start, inset-inline-start, border-inline-start) make RTL mirroring automatic; the frontend-rtl.css companion is enqueued automatically when is_rtl() is true.

Known gaps to add later: dialog-style confirmation modal for requires_confirmation actions (currently uses window.confirm which screen readers handle inconsistently); keyboard re-ordering on Kanban (not yet implemented in the front-end bundle).