SimpleForm comes with an option browser_validations
which could be used to give fields that have a presence validation the HTML
required
Show archive.org snapshot
attribute. We usually turn it off due to difficulties controlling its behavior and appearance. Instead we only mark required fields with an asterisk (*) next to its label. Blind users probably only discover the validation issue after submitting the form due to the now displayed error messages.
A compromise with better accessibility is to add the aria-required Show archive.org snapshot attribute in this case. This allows screen readers to announce fields as required before the form is submitted.
- Define a SimpleForm component:
module SimpleForm
module Components
module AriaRequired
def aria_required(_wrapper_options)
if required_field?
input_html_options['aria-required'] = 'true'
end
nil
end
end
end
end
SimpleForm::Inputs::Base.include(SimpleForm::Components::AriaRequired)
- Change all your wrappers to use it:
SimpleForm.setup do |config|
config.browser_validations = false
config.wrappers :default, error_class: :field_with_errors do |b|
b.use :aria_required
end
end
Posted by Michael Leimstädtner to makandra dev (2025-08-25 14:03)