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

feat: aria-braillelabel #923

Merged
merged 9 commits into from Mar 11, 2020
Merged

feat: aria-braillelabel #923

merged 9 commits into from Mar 11, 2020

Conversation

pkra
Copy link
Member

@pkra pkra commented Apr 3, 2019

@joanmarie
Copy link
Contributor

joanmarie commented Apr 3, 2019

This link should always point to the current version, even after more changes are made to Peter's branch: https://raw.githack.com/pkra/aria/braille-props-label/index.html#aria-label-braille

(This was edited to remove the old commit-specific link.)

@jasonjgw
Copy link

jasonjgw commented Apr 3, 2019

I support the proposal in general. It isn't clear what "uncontracted braille ASCII" means (and I'm very familiar with braille and braille-related technology). I would suggest either eliminating (my preference) or defining that possibility so that assistive technology developers know precisely what to expect in the string.

@johnfoliot
Copy link

I have a small concern about introducing a new "pattern" into the aria lexicon - specifically "double-hyphenated" attributes (i.e. aria-label-braille and aria-roledescription-braille). A quick check of the existing ARIA attributes, and this will be the first time that this WG would be introducing that pattern, and so more than anything else - why?

Previously, even "multi-name" attributes have all been concatenated into one string (ref: Position In Set = aria-posinset), and I would strongly encourage the ARIA WG to maintain that pattern (aria-labelbraille, aria-roledescriptionbraille) if these new attributes are to move forward.

Additionally, if the only reason for the double-hyphen is "readability", the values can always be presented (instructionally) in CamelCase, as elements and attributes are case insensitive: (aria-LabelBraille, aria-RoleDescriptionBraille - although that goes counter to existing attributes as well)

@pkra
Copy link
Member Author

pkra commented Apr 4, 2019

Thanks for the comments so far!

@jasonjgw wrote

It isn't clear what "uncontracted braille ASCII" means (and I'm very familiar with braille and braille-related technology).
I would suggest either eliminating (my preference) or defining that possibility so that assistive technology developers know precisely what to expect in the string.

Thanks for calling this out - it is something I wanted to bring up in the meeting.

I've been trying to capture the previous discussions on the mailing list (in particular with AT developers) and the call in February around this. But I'm not as well versed at Braille Ascii encodings.I got "uncontracted" from RNIB. Would just "Grade 1" make more sense?

The basic idea from the discussions was that AT should be able to push the content of the Braille label to a Braille display as directly as possible. A key goal for this SHOULD statement is to avoid additional markup to indicate encoding (in particular to avoid authoring errors).

@johnfoliot wrote

I have a small concern about introducing a new "pattern" into the aria lexicon -
specifically "double-hyphenated" attributes (i.e. aria-label-braille and aria-roledescription-braille).
...
I would strongly encourage the ARIA WG to maintain that pattern (aria-labelbraille,
aria-roledescriptionbraille) if these new attributes are to move forward.

I generally agree. However, I left it as before to connect to previous discussions and because the question had come up whether a more general Braille (or tactile) namespace might be preferential. If I remember correctly, this came up in the context of potential outcomes from the APA pronounciation task force which might face similar questions.

@johnfoliot
Copy link

johnfoliot commented Apr 4, 2019

@pkra I again caution you on attempting a micro-syntax (i.e. namespacing) in ARIA.

I'll +1 Jon Gunderson's suggestions (i.e. aria-braillelabel, aria-brailleroledescription) for addressing the need of signifying braille-centric attributes.

@jasonjgw
Copy link

jasonjgw commented Apr 4, 2019

The problem is that there is no single standard mapping even from the printable ASCII subset of Unicode to a braille representation. There are different ASCII->braille tables used in different countries (e.g., the North american ASCII->braille table is different from the German table, and similarly for other locales - and I'm not even sure that either is officially standardized anywhere).

"Grade 1" doesn't help in this context, as it wouldn't specify any mapping of ASCII characters to braille cells. The only absolutely standard and unambiguous way to do it is with the Unicode block set aside for this purpose, which is why I would prefer to eliminate the ASCII-based option. The only alternative would be to find a suitable normative reference that specifies the mapping of printable ASCII to six-dot braille. In effect, you would be choosing one of the mappings that have been implemented.

@pkra
Copy link
Member Author

pkra commented Apr 4, 2019

@johnfoliot

@pkra I again caution you on attempting a micro-syntax (i.e. namespacing) in ARIA.

FWIW I agree. I'm documenting the discussion in the WG here.

@jasonjgw wrote

I would prefer to eliminate the ASCII-based option.

FWIW I would prefer that as well. I'm documenting the discussion in the WG here.

@carmacleod
Copy link
Contributor

carmacleod commented Apr 4, 2019

+1 to @johnfoliot's +1 to @jongund's attribute naming suggestions. :)

Just looking a bit further down the road, and applying the "remove hyphen; camelcase the rest" pattern, they would be reflected as follows:

  • aria-braillelabel = ariaBrailleLabel
  • aria-brailleroledescription = ariaBrailleRoleDescription

which would sort them together in developer tooling (more useful than having "-braille" at the end).

cc @cookiecrook for info

@charmarkk
Copy link
Contributor

+1 to @johnfoliot's and @jongund's suggestions. +1 to @carmacleod's adjustments/formatting.

@johnfoliot
Copy link

To be clear...

CamelCasing is useful for "instructional" reasons, however attributes SHOULD be case-insensitive, and earlier compounded attributes in the spec have not traditionally been rendered in CamelCase (eg. aria-posinset vs. aria-PosInSet, aria-labeledby vs. aria-LabeledBy, etc.). Consistency in naming conventions should also be considered.

@joanmarie
Copy link
Contributor

@johnfoliot and @charmarkk: I believe @carmacleod was specifically talking about the "reflected" properties which is for AOM. Thus the official properties added to ARIA would NOT be camel-cased.

@cookiecrook
Copy link
Contributor

I'm having trouble understanding the use case here. Screen reader braille implementations are usually complex, allowing users to customize braille verbosity, use different translation tables in different contexts, etc.

Perhaps someone could explain the "proposal" since no description was included above. Whatever the case, this edit should not be included without clear example illustrating the utility of the feature, and a clear description as to when/why/where this should be used instead of letting the screen reader do its thing.

PS. This caveat should definitely be removed as it's not internationalizable.

or of a string of uncontracted (Grade 1) Braille ASCII.

@pkra
Copy link
Member Author

pkra commented Apr 9, 2019

@cookiecrook thanks for your comment.

Some references to previous discussions:

PS. This caveat should definitely be removed as it's not internationalizable.

Yes; this was the agreement during last week's meeting.

@jnurthen jnurthen added the WIP label Apr 9, 2019
@cookiecrook
Copy link
Contributor

Commented in detail on #765

@pkra pkra added the Agenda label Jun 14, 2019
@mraccess77
Copy link

while in general I am not in favor of separate labels I believe this could be useful for situations like a math where we need to show unified English braille or Nemeth code but have something different announced in speech.

@jnurthen jnurthen removed the Agenda label Jun 25, 2019
@jnurthen jnurthen added this to Needs triage in Braile Support Nov 13, 2019
@pkra
Copy link
Member Author

pkra commented Jan 14, 2020

I've updated the branch with a re-write that stays close to the language in #1097.

@pkra pkra changed the title feat: aria-label-braille, first draft feat: aria-braillelabel Jan 14, 2020
index.html Outdated Show resolved Hide resolved
@carmacleod
Copy link
Contributor

Regarding:

As required by the accessible name and description computation, user agents give precedence to aria-labelledby over aria-braillelabel when computing the accessible Braille name property.

I don't understand why we wouldn't change the accessible name and description computation to allow aria-braillelabel to override aria-labelledby?

We have said that:

The aria-braillelabel property gives authors the ability to override how assistive technologies localize and express the accessible name of an element in Braille.

So it seems kind of strange to me that aria-braillelabel can override the accessible name if it was provided by content, or by an aria-label, or presumably by host language labelling techniques such as <label>, but we wouldn't allow it to override the one case where the accessible name happens to come from aria-labelledby? Why is that?

(Of course, I know very little about Braille, and it is very likely that I am missing something here).

@sinabahram
Copy link

sinabahram commented Jan 16, 2020 via email

@pkra
Copy link
Member Author

pkra commented Jan 16, 2020

Thanks, @carmacleod , @sinabahram! I agree that this is a bit confusing (and the first draft had marked this part TBD because I felt the same way).

When we discussed it on a WG call, the initial agreement was that we wouldn't need "braille labelled by" (or described by) since a braille label can/should be on the target of the labelledBy. This also makes sense since that is where the element gets its name from. Otherwise, we end up "splitting up" names to come from different elements which might be problematic for implementors and authors alike.

That's just to recap -- I'm happy to reconsider.

pkra added a commit to pkra/aria that referenced this pull request Jan 16, 2020
pkra added a commit to pkra/aria that referenced this pull request Jan 16, 2020
@pkra
Copy link
Member Author

pkra commented Feb 26, 2020

I've just pushed an update that modifies the code example as per the discussion; I also adjusted the sentence after the pre element to match the changes.

I think this addresses all comments so far - with the exception of #1205. Please let me know if I missed a comment and if there are any additional comments we should address before merging. (And #1205 will ensure an opportunity for further comments later on, too.)

Copy link
Contributor

@carmacleod carmacleod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1
Looks good to me!

@pkra pkra requested a review from jnurthen February 27, 2020 18:59
@pkra
Copy link
Member Author

pkra commented Feb 28, 2020

@jnurthen I requested a review from you as per yesterday's telco. Should I clean up the branch before or after your review? (I must have rebased badly at some point, introducing more than 100 unrelated commits).

@jnurthen
Copy link
Member

jnurthen commented Mar 4, 2020

@jnurthen I requested a review from you as per yesterday's telco. Should I clean up the branch before or after your review? (I must have rebased badly at some point, introducing more than 100 unrelated commits).

Can you please fix... I can't really review in this state.

@pkra
Copy link
Member Author

pkra commented Mar 4, 2020

@jnurthen this was a bit weird. I tried a new PR from the the same branch and github's preview shows none of those commits.

Anyway, I'll force push and see if that improves things.

@pkra
Copy link
Member Author

pkra commented Mar 4, 2020

@jnurthen the git history should be reasonable now.

@pkra
Copy link
Member Author

pkra commented Mar 6, 2020

@jnurthen is it reviewable now or do you need me to try a completely squashed version?

@jnurthen
Copy link
Member

jnurthen commented Mar 6, 2020

@jnurthen is it reviewable now or do you need me to try a completely squashed version?

Yes - only 1 file changed now so all good.

@jnurthen jnurthen merged commit 99763b0 into w3c:master Mar 11, 2020
Braile Support automation moved this from In Progress to Closed Mar 11, 2020
@pkra pkra deleted the braille-props-label branch March 11, 2020 17:10
carmacleod pushed a commit that referenced this pull request May 7, 2020
@pkra pkra added this to the ARIA 1.3 milestone Jan 10, 2022
@pkra pkra mentioned this pull request Jan 10, 2022
pkra pushed a commit that referenced this pull request Jan 9, 2024
…ions (#2039)

This adds the following string reflections to ARIAMixin:

- `ariaBrailleLabel` -> `aria-braillelabel`
- `ariaBrailleRoleDescription` -> `aria-brailleroledescription`

These reflections are already implemented in Chromium (see [here](https://source.chromium.org/chromium/chromium/src/+/main:out/fuchsia-Debug/gen/third_party/blink/renderer/bindings/modules/v8/v8_element.cc;l=1201;drc=168fe20dbf8ab7e47e36db5e528ec3c95c2f8af0) and [here](https://source.chromium.org/chromium/chromium/src/+/main:out/fuchsia-Debug/gen/third_party/blink/renderer/bindings/modules/v8/v8_element.cc;l=1228;drc=168fe20dbf8ab7e47e36db5e528ec3c95c2f8af0)), but not yet in WebKit or Firefox.

The purpose of this PR is to align with the de-facto behavior of Chromium. I don't see a strong reason for the spec not to include these particular reflections. (If there is one, please let me know!)

See also: #923

# PR tracking
Check these when the relevant issue or PR has been made, OR after you have confirmed the
related change is not necessary (add N/A). Leave unchecked if you are unsure. Read the
[Process Document](https://github.com/w3c/aria/wiki/ARIA-WG-Process-Document/_edit) or
[Test Overview](https://github.com/w3c/aria/wiki/ARIA-Test-Overview) for more information.

* [x] Related Core AAM Issue/PR: does not apply
* [x] Related AccName Issue/PR:  does not apply
* [x] Related APG Issue/PR: does not apply
* [x] Any other dependent changes? no.

# Implementation tracking

* [x] "author MUST" tests:  does not apply
* [x] "user agent MUST" tests: web-platform-tests/wpt#42751
* [x] Browser implementations (link to issue or when done, link to commit):
   * WebKit: No (https://bugs.webkit.org/show_bug.cgi?id=263663)
   * Gecko: No (https://bugzilla.mozilla.org/show_bug.cgi?id=1861201)
   * Blink: [here](https://source.chromium.org/chromium/chromium/src/+/main:out/fuchsia-Debug/gen/third_party/blink/renderer/bindings/modules/v8/v8_element.cc;l=1201;drc=168fe20dbf8ab7e47e36db5e528ec3c95c2f8af0) and [here](https://source.chromium.org/chromium/chromium/src/+/main:out/fuchsia-Debug/gen/third_party/blink/renderer/bindings/modules/v8/v8_element.cc;l=1228;drc=168fe20dbf8ab7e47e36db5e528ec3c95c2f8af0)
* [x] Does this need AT implementations? no.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Braile Support
  
Closed
Development

Successfully merging this pull request may close these issues.

None yet