aria-required-owned-element should not allow invalid children for having aria-busy#2387
aria-required-owned-element should not allow invalid children for having aria-busy#2387WilcoFiers wants to merge 1 commit intodevelopfrom
Conversation
…ing aria-busy Removes the exception of elements with aria-busy, and moved an inapplicable example to failed.
✅ Deploy Preview for act-rules ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
I'm not sure we do handle
All in all, I think we will need to drastically revisit this rule for ARIA 1.3 (due to the required/allowed change), so we should maybe wait for this 🤔 (or start writing an ARIA 1.3 rule on the side given it will be quite different). I won't oppose this change. I'm more concerned about the impact on actual pages (that we now declare as "bad") than about the impact on implementation (it's a fairly small change to do). |
|
@Jym77 I think the problem is worse with aria-busy than without. aria-busy tells AT that the element isn't done, and that they may choose to ignore changes to it until it's no longer set to busy. So if you put aria-busy on a loading message, that means AT may (and do) ignore it. A loading state is a status message, that's a 4.1.3 status message failure on top of the malformed accessibility tree issue. I don't think it's an "ARIA isn't clear if this is allowed" case. ARIA doesn't say it's allowed, so it isn't. That thee's no text role in ARIA (anymore) doesn't mean text is exempt, just like native date pickers aren't exempt. Those are child nodes, with a role not on the allowed child roles list. As for us changing our minds and failing things that we previously said didn't... that happens. I don't think this is a change that will affect a lot of pages. I've only ever recall seeing one of them, and that is one that I would have failed for using aria-busy in a manual audit. |
I'm referring to the definition of Accessibility child (used in "allowed children") that ignores "elements of role generic or none intervening [between the parent and the children]." And has explicit allowed example of Now, I am not sure whether Fair points otherwise 😄 |
I've been looking over
aria-busy, and I think we've been too permissive with it. Nowhere does ARIA actually say that if you putaria-busyon element that it can contain non-allowed children. What ARIA 1.2 said is that if an element is empty because content wasn't loaded yet authors must set aria-busy. This was has been pulled from ARIA 1.3 though, along with the rest of the required children section, because ARIA 1.3 now has allowed child roles. It doesn't mention aria-busy at all.I think that allowing an
aria-busyexception was a mistake, and that this "loading" example we have is invalid.aria-busyisn't intended to communicate a loading state. All it does is tell screen readers to wait in pronouncing live region changes because they aren't done. See also w3c/aria#2424Need for Call for Review: 2 weeks, this breaks basically every automated implementation.
How to Review And Approve