Hey everyone. Josh with Online ADA here, and in this video we’re covering article 4.1.3–Status Messages. This is a AA level requirement and I’ll jump into the description.
“In content implemented using markup languages, status messages can be programmatically determined through role or properties such that they can be presented to the user by assistive technologies without receiving focus.”
That’s the big one. This is saying that on your web pages you’ve implemented some way of conveying important information to people without them having to go to that information first. It’s–without receiving focus. So a big example for this one is form inputs. When we have validation errors or inputs that have some sort of error in them, it’s a perfect example of where you would wanna use this. When you go to submit the form your focus, or the user’s focus, is on the submit button, but the error exists up here–somewhere that they’ve already been. We don’t wanna have to wait for them to go all the way back through the form to get to that input to figure out that’s where the problem was. We wanna let them know right away where the problem was. So when they click that button, if you’re using the role of “status” or role of “alert,” then when the error appears on the page, it will be read aloud to them. The screen reader will pick up on it and read it out loud to them. And they don’t even have to move back up to the, uh, to the error. It’ll just say “hey, the first name field is required. Please go back and fill that in.” Or whatever.
This article says that you wanna make sure to use this whenever you have what’s called a “status message” on the web page and WCAG has determined what those are with two definitions, and I’ll read those now. “A message provides information to the user on the success or results of an action, on the waiting state of an application, on the progress of a process, or on the existence of errors.” And the second definition is, “The message is not delivered via a change of context,” meaning the web page hasn’t taken you some place new, the content hasn’t moved away in some dramatic way, then you could use a status message here.
Or, another good example is if you have something loading in the background, if you’re collecting results from some place to–to show the users some sort of form or some information they’ve already gathered and you have to go make a database call to get all that information–when the web page is loading, uh, there’s some sort of progress bar happening, or loading bar. Um, a blind user doesn’t know what’s happening. They can’t see that change or that context, so, using a status message, you could update them and let them know, “please wait while we gather your results,” or “loading,” or something like that. And you can do this with a couple of different ARIA attributes.
There’s ARIA Live, and you can do polite or assertive. Um, a really important message like a validation error, we’d probably use assertive, meaning it gets red before the other contents of the page. And polite means it’ll get read after whatever else has focus gets read. And then ARIA Atomic is another attribute you can use, and if you say “true” on ARIA atomic, it’ll tell the website that this region, whatever this container is, anything inside of here is going to be watched live so any new additions to text will be read out loud to the user over and over again.
Without ARIA Atomic, it’ll only get read the first time something changes inside that context, and then any new additions will get ignored. So ARIA Live equals assertive or polite, and ARIA Atomic equals true, you have yourself a live region where any additional text will get read out loud to the user. You can use that on any element or anywhere and you can have a fully live web page if you want to where all that content is getting read out loud to the user. All the changes are getting read out loud to the user.
And that’s what we’re talking about here in 4.1.3–Status Messages. So, that’s all there is. Thank you so much for joining me and I will see you in the next video.