WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: Screen reader and greyed-out submit button

for

From: Murphy, Sean
Date: Jan 15, 2020 3:11PM


I like this idea in deed. As much heavy lifting off the vendor on the browser the better in the area of accessibility the better. Assuming the browser vendor does it right in the first place which is always the risk.

Sean

-----Original Message-----
From: WebAIM-Forum < <EMAIL REMOVED> > On Behalf Of Birkir R. Gunnarsson
Sent: Thursday, 16 January 2020 3:18 AM
To: WebAIM Discussion List < <EMAIL REMOVED> >
Subject: Re: [WebAIM] Screen reader and greyed-out submit button

[External Email] This email was sent from outside the organisation – be cautious, particularly with links and attachments.

Graham
Good points, but the path forward is to pressure for more accessile browser valdation, the vendors can create more accessible browser validation messages.
Having to use Javascript to create accessible error messages is non-trivial and if we can shift a larger portion of that work to the browsers with viable accesibility we can hugely reduce the difficulty of developing accessible forms.
What we do currently is to access the browser validation tree and use Javascript to make sure error messages are persistent and properly associated with the invalid inputs. I can create a code pen example to demonstrate I like progressive enhancement but I also see the opportunity to push towards making form validation easier and less reliant on Javascript, it would be a big win for accessibility.

On 1/15/20, Graham Armfield < <EMAIL REMOVED> > wrote:
> Thanks for your comments Birkir.
>
> I would however caution against relying on the inbuilt browser
> validation for input type="email", input type="number" etc. A recent
> survey pointed out that the resultant error messages are not always
> read out by screen readers. Also if you have multiple numeric or email
> fields in a form, it's not clear to screen reader users which of the
> fields generated the error message.
>
> In my view it's best to deactivate the browser validation and rely on
> purpose built validation and informative error messages - whether
> generated by JavaScript or by return from a server submit.
>
> Regards
> Graham Armfield
>
> coolfields.co.uk <http://www.coolfields.co.uk/>;
> M:07905 590026
> T: 01483 856613
> @coolfields <https://twitter.com/coolfields>
>
>
> On Wed, 15 Jan 2020 at 13:50, Birkir R. Gunnarsson <
> <EMAIL REMOVED> > wrote:
>
>> Lots of good points in that email!
>> Here are a few more thoughts.
>> The native HTML way to mark form controls as unavailable is the
>> disabled attribute <button disabled>submit</button> (should be
>> "differently able" to be more PC) This attribute removes the control
>> from te focus order and disables the click event on it.
>> I believe this is consisent across browsers.
>> If you want to keep the element focusable but dsabled you have to do
>> that with a Javascript (event.preventDefault()) and then you can
>> aria-disabled="true" on the element to mark it as disabled for a
>> screen reader.
>> YOu haveYou hav to use this approach for links (including links
>> turned into buttons with styling and ARIA) because the disabled
>> attribute is not valid on links.
>>
>> IN TML5 you can do a lot of browser validation without Javascript, by
>> using the appropriate input type attributes (e.g. type="email" on an
>> input causes browser validtion errors if you have no @ symbol, or
>> multiple ones).
>> If you are good at regular expressions you can use the pattern
>> attribute to force all sorts of input validation.
>> These are not Javascript dependent and if the browser does not
>> support
>> HTML5 they wll basically just be regular text inputs.
>>
>>
>> On 1/15/20, Graham Armfield < <EMAIL REMOVED> > wrote:
>> > Hi Barry,
>> >
>> > Having a submit button only become active when all fields pass the
>> > form validation seems to be a popular pattern within some
>> > organisations. But it's also considered a bit of an anti-pattern by
>> > some within the UX (user
>> > experience) and accessibility communities.
>> >
>> > I can think of a couple of reasons why this is not a good idea.
>> >
>> > Firstly, the submit button on/off functionality relies on
>> > JavaScript routines running in the browser to perform the
>> > validation before enabling the submit button. Some people may be
>> > browsing in setups where JavaScript has been blocked, or where the
>> > JavaScript files don't load and these
>> users
>> > may never be able to submit the form since the validation routines
>> > don't run.
>> >
>> > Secondly, I'm told that if field prompts are not sufficiently
>> informative,
>> > or don't contain format guidance, some people favour submitting a
>> > form early and using the resultant error messages to help
>> > understand the information that is required. If the submit button
>> > is not activated until validation is satisfied, this is not
>> > possible.
>> >
>> > There are also some other ideas in this article:
>> > https://axesslab.com/disabled-buttons-suck/
>> >
>> > Regards
>> > Graham Armfield
>> >
>> > coolfields.co.uk <http://www.coolfields.co.uk/>;
>> > M:07905 590026
>> > T: 01483 856613
>> > @coolfields <https://twitter.com/coolfields>
>> >
>> >
>> > On Wed, 15 Jan 2020 at 06:57, Barry Hill < <EMAIL REMOVED> > wrote:
>> >
>> >> Hi all
>> >>
>> >>
>> >>
>> >> When a web form has a submit button that is greyed-out when the
>> >> form is incomplete, how should it be handled with screen readers?
>> >> Or should the user be able to submit the form and get the alert
>> >> that the form is incomplete?
>> >>
>> >>
>> >>
>> >> Thanks in anticipation.
>> >>
>> >>
>> >>
>> >> Cheers
>> >>
>> >>
>> >>
>> >> Barry
>> >>
>> >>
>> >>
>> >> >> >> >> >> archives at http://webaim.org/discussion/archives
>> >> >> >>
>> > >> > >> > archives at http://webaim.org/discussion/archives
>> > >> >
>>
>>
>> --
>> Work hard. Have fun. Make history.
>> >> >> archives at http://webaim.org/discussion/archives
>> >>
> > > archives at http://webaim.org/discussion/archives
> >


--
Work hard. Have fun. Make history.