Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should the target of aria-errormessage in UIA have a flag in AriaProperties? #183

Open
sivakusayan opened this issue Jun 28, 2023 · 2 comments
Assignees

Comments

@sivakusayan
Copy link
Contributor

Currently aria-errormessage is exposed in UIA via the ControllerFor property. This means that, as far as I can tell, an API consumer won't be able to distinguish between targets of aria-errormessage and targets of aria-controls without hacky workarounds, since aria-controls also uses ControllerFor.

Should the target of an aria-errormessage be given some property in AriaProperties to distinguish it from being the target of an aria-controls? Or could this information possibly be exposed in a different UIA property?

@douggeoffray
Copy link

Using ControllerFor doesn't make sense to me. Not just because it conflicts with aria-controls, but because the element isn't really controlling the element containing the error. Yes, it caused it to generate but not really controlling it beyond its presence. To me, the error is a form of a description. This brings up the UIA FullDescription property and the DescribedBy property. I don't like FullDescription as that would conflict with valid data as well. Given DescribedBy is an array of elements, this makes the most sense to me.

How does this sound? We are having internal discussions on this as I really don't think ControllerFor is the right property.

@sivakusayan
Copy link
Contributor Author

sivakusayan commented Jul 27, 2023

Edit: Fat-fingered the close button....

I agree that the ControllerFor mapping was confusing, but I didn't bring it up because I'm not familiar with the history behind it. If there isn't any significance to it, aligning it with the UIA description makes more sense to me, too.

Just to clarify:

  1. If we did map aria-errormessage to the DescribedBy array, would it be concatenated with nodes from aria-describedby? Or would one somehow override the other?
  2. Do API consumers in practice ever read the DescribedBy array? I feel like if I was working on AT I would always just get the FullDescription, since I would assume it's in alignment with the DescribedBy array. Maybe aria-errormessage should be appended to FullDescription? Maybe that would be too verbose? It would also hypothetically mean that UIA description calculation is slightly different from other APIs, which could be confusing...

FYI @benbeaudry in case you had any thoughts here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants