Skip to content
This repository has been archived by the owner on Jun 30, 2018. It is now read-only.

Transforming 3.2.7 Change of Content #544

Closed
mbgower opened this issue Oct 31, 2017 · 77 comments
Closed

Transforming 3.2.7 Change of Content #544

mbgower opened this issue Oct 31, 2017 · 77 comments

Comments

@mbgower
Copy link
Contributor

mbgower commented Oct 31, 2017

This issue thread has been created to track the work being done by myself, @DavidMacDonald and @steverep (with input from Matt King) to revisit the wording and scope of 3.2.7 Change of Content.

@mbgower mbgower self-assigned this Oct 31, 2017
@mbgower
Copy link
Contributor Author

mbgower commented Oct 31, 2017

My latest stab at wording and concepts

Change of Content
Programmatic notification of changes in content are provided for auto-updating content and status information

status information

  • dynamic content such as success, progress or warning notices, which result from either user action or application status changes, and which do not take focus

Programmatic notification

  • a mechanism which provides notice of changed content to user agents and assistive technology. The notification can include the actual changed content.

@DavidMacDonald
Copy link
Contributor

This is workable for me.

Would add, "errors" to the definition of Status information and content added/changed/hidden.

  • dynamic content such as notice of success, error, progress, warning, new, changed, or hidden content, which result from either user action or application status changes, and which do not take focus.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

I always think in a "such as" statement, less is more. "Dynamic content" is a pretty wide term -- I think anyone would understand that dynamic content can be 'new' or 'changed'. I think we can clarify that in the understanding doc.
I'm concerned about using the term "hidden content". There are a lot of meanings of "hidden", and I initially misunderstood what you meant, I think. I believe "removed" is a better descriptor for what you intended? But I also believe that we really don't need anything else.
I'm okay swapping out "warning" with "error". I debated which to use and thought that error notices are a form of a warning. Here it is with the swap, to see if that scans better.

dynamic content such as success, progress or error notices, which result from either user action or application status changes, and which do not take focus

You haven't commented on the definition of 'programmatic notification'. I want it to be better, but I think it at least conveys the sense now.

@steverep
Copy link
Member

steverep commented Nov 1, 2017

Programmatic notification of changes in content are provided for auto-updating content and status information

The problem with this is that it does not delineate between the types of auto-updating information. This is great for a chat widget, but terrible for an ad carousel, stock ticker, or timer.

a mechanism which provides notice of changed content to user agents and assistive technology. The notification can include the actual changed content.

  1. Couldn't I just interpret "notice" as changing the DOM? I don't think aria-live when I read this.
  2. What do you mean by "can include"? Would it be okay if it didn't?

@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

it does not delineate between the types of auto-updating information

Does it need to? Is that not something that can be handled in the Understanding document and techniques? In example, we would have a technique covering content that auto-updates on a regular and frequent basis, such as carousels, stock tickers and timers. That technique's mechanism could be the assignment of a role such as timer, which designates a region of the page as frequently updating.

Did you envision a term that excludes different kinds of auto-updating content?

@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

What do you mean by "can include"? Would it be okay if it didn't?

I was incorporating a phrase introduced by David. "Can" indicates that something is optional. I believe he was trying to drive at the fact that the notification could include the text string. I'm still trying to figure out a way to cleanly divide the act of programmatic notification from the message that may accompany it. Still not there.As I posted (about 5 seconds before your reply!) I think we can improve this definition. :)
Say, what about if we say "indication" instead of notification. Then we can work notification into the definition. Something like

Programmatic indication of changes in content is provided for auto-updating content and status information
Programmatic Indication
-a mechanism which provides an indication of changed content to user agents and assistive technology. The indication can include notification of the actual changed content.

Is that any better?

@steverep
Copy link
Member

steverep commented Nov 1, 2017

Does it need to? Is that not something that can be handled in the Understanding document and techniques? In example, we would have a technique covering content that auto-updates on a regular and frequent basis, such as carousels, stock tickers and timers. That technique's mechanism could be the assignment of a role such as timer, which designates a region of the page as frequently updating.

Yes, I think it absolutely needs to somehow. Your normative text says that programmatic notification is required, so you cannot explain in Understanding that it's okay to take a pass on certain types of content.

Did you envision a term that excludes different kinds of auto-updating content?

No, my initial thought was to take care of this by forcing a role as I proposed on the wiki page. When the role is properly identified semantically, the default aria-* properties are usually appropriate. However, even this is flawed because the role's default properties can just be overridden and my language did not disallow this. I don't have a good solution yet.

Programmatic Indication-a mechanism which provides an indication of changed content to user agents and assistive technology. The indication can include notification of the actual changed content.
Is that any better?

Maybe slightly, but I'm still leaning strongly against trying to create a definition for "programmatic notification/indication" because I think it will always lead to problems. One thing I thing my proposal got right was to recognize that we are basically just asking for programmatic determination of live regions with appropriate markup/politeness. We have a definition for the former to use; the hard part is stating the latter. In plain language, we want the SC to say:

Auto-updating and status update content can be programmatically determined, and the importance and relevance is set appropriately for assistive technologies.

@steverep steverep self-assigned this Nov 1, 2017
@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

Ha, I had a draft that was thinking of the same thing regarding determinability

Changes in content are programmatically determinable for auto-updating content and status information

I think my wording slightly better captures the idea that it's the changes in content we want determinable. That may arise from an assignment of role (i.e., a role of timer means the changes are frequent and predictable). My concern with your second phrase is that although it nails what we want, it is highly subjective. My question: to what degree can we cover concepts of importance and relevance in techniques and Understanding without making it part of the normative language?

@mraccess77
Copy link

I'd also mention that we want to include new content -- not just content that has changed.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

I'd also mention that we want to include new content -- not just content that has changed.

"Changes in content" should cover modified, added or removed content. They all represent changes in content. That will be clarified in the Understanding document.

@awkawk
Copy link
Member

awkawk commented Nov 1, 2017

Are we talking about programmatic determination of changes in content now, or still on the notification of changes of content?

Changes in content are already covered by WCAG 2.0, so I may just be misunderstanding what people are pushing for.

@steverep
Copy link
Member

steverep commented Nov 1, 2017

I think my wording slightly better captures the idea that it's the changes in content we want determinable.

Well, playing devil's advocate, the "change" is always going to be programmatically determinable if I move the virtual focus to it. So I see 2 possible approaches:

  1. Target the regions themselves as being programmatically determinable (similar to 4.1.2 and 1.3.1). A semantically correct role or aria-live value other than "off" will do this.
  2. Target the "change" being programmatically determinable at the time of the change same techniques apply, although it kinda sorta implies immediate notification through aria-live="assertive" which is obviously bad.

That may arise from an assignment of role (i.e., a role of timer means the changes are frequent and predictable).

If we can pull off the first approach elegantly, that's great, but I'd then worry about accessibility support. This doesn't work for the second approach because no one wants to hear a clock ticking down, or at least not at the rate of visual changes.

My concern with your second phrase is that although it nails what we want, it is highly subjective.

That's because it was meant to nail it in plain language outside the cryptic world of success criteria ;).

My question: to what degree can we cover concepts of importance and relevance in techniques and Understanding without making it part of the normative language?

The "importance" part directly maps to the token specified for aria-live, and that's the million dollar question. The "relevance" part directly maps to aria-relevant and aria-atomic, and I'd be okay implying this by normative text with explanations in techniques and understanding.

The more I think about it, the more I think we should just narrow the scope to the stuff that always needs notification. We're on the right track with status updates (alert, status, and progress bar roles), but we need to incorporate chat and similar logs (log role). Then we could leave other stuff to advisory techniques and Understanding (marquee and timer roles), which are going to have questionable accessibility support anyway.

@steverep
Copy link
Member

steverep commented Nov 1, 2017

Changes in content are already covered by WCAG 2.0, so I may just be misunderstanding what people are pushing for.

@awkawk, not quite true and you probably needed to be on the call and private email chain with @mbgower, @DavidMacDonald, and me to fully understand. I promise we're working towards something clean, but still in work. Take a look at the scope discussion on the wiki to perhaps grasp where WCAG 2.0 is deficient.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

@awkawk I will attempt to summarzie the key points for you. As Steve notes, there has been a lot of back and forth in email -- one of the reasons I moved it back to an issue was so that anyone could follow the discussion, at least from this point in time on.

  • 4.1.2 addresses user interface components (" notification of changes to these items is available to user agents, including assistive technologies"). This new SC should address other content (which at one point we tried designating simply as 'non-user interface components')

  • a key distinction for this kind of content is that it does not take focus when content changes

  • another key distinction seems to be that the changes in content we are addressing are visible and largely text-based

  • There are four broad considerations we need to cover:

    • indicating that a region of content has info that can dynamically update (using the term 'region' generically here)
    • indicating that a region has been updated, AKA notification
    • conveying the change in content (including the removal of content-- think of how a 'busy' status message that disappears is conveying information by its absence)
    • providing author requirements/guidance on indicating the importance and relevance of the changed content
  • The live region definition from ARIA glossary may be starting point for definition of Change of Content

  • the SC should be complementary to 3.3.1 Error identification

  • a challenge we have is that there are aria roles which designate parts of content that are dynamic BUT we can't just rely on such roles, since the attribute of aria-live can be put on any element

  • Much of our vocabulary is based on ARIA, and thus not technology independent. In example, notification of content changes will frequently be supplied through the aria-live attribute

  • There is a difference between the ability for the user to be notified of changes in content through the UA or AT, and notifying the user of the content of the changes (the original wording allowed the latter to be an exception for the former)

  • I'll also note ongoing discussion we have with Matt King about whether there should be something like aria-live="true", which designates a live region. At the moment, aria-live only designates verbosity, with aria-live="off" conveying no information. If aria-live="false" was the default boolean, then aria-live="true" would provide an ability to indicate divs, etc, that have content that can dynamically change. An attribute called something like aria-live-verbosity could provide all the current values of aria-live.

@awkawk
Copy link
Member

awkawk commented Nov 1, 2017

@steverep ok, I'll back away, but as I do I will also say that I don't see anything on the wiki page link that you sent where the programmatic determination of the information added to the page (or changed) is not covered under WCAG 2.0. Notification of the changes is a different matter and that is where I see our gap, as well as our challenges in crisply defining an SC around.

@mraccess77
Copy link

WCAG 2 seems to address changes of context as well as changes to individual user interface components. The area it doesn't seem to address clearly are changes/additions/removal that don't cause a change of context (don't affect a significant portion of the page) or are not specific to certain components covered by 4.1.2.

@DavidMacDonald
Copy link
Contributor

DavidMacDonald commented Nov 1, 2017

Steve's plain language version

Auto-updating and status update content can be programmatically determined, and the importance and relevance is set appropriately for assistive technologies.

This doesn't require a status update, only that if it is given, it is determinable... I like the idea of working in the plain language version for a bit...

Status messages are provided for changes in content which can be programmatically determined, and the importance and relevance is set appropriately for assistive technologies.

Change of content: dynamic content such as notice of success, error, progress, warning, new, changed,Auto-updating or hidden content, which result from either user action or application status changes, and which do not take focus.

set appropriately: cool definition here that says something like. Messages which can be read within 10 seconds at x words per minute, have the role which matches their function (marquee, status, alert, log, timer, progressbar)

@awkawk
Copy link
Member

awkawk commented Nov 1, 2017

@steverep
Copy link
Member

steverep commented Nov 1, 2017

I don't see anything on the wiki page link that you sent where the programmatic determination of the information added to the page (or changed) is not covered under WCAG 2.0.

The content itself is, of course, covered by WCAG 2.0 and needs to be programmatically determinable, but the type of content being programmatically determinable (a live region) is not covered. Satisfying the latter results in notification. In the context of WCAG 2.0 criteria, it's the difference between an actual heading's text being programmatically determined, and the fact that it's a level X heading, or the difference between a components label, and its role.

In ARIA terms, using the roles of alert, status, progressbar, log, timer, and marquee are simply not covered because they are not controls and thus do not meet the definition of "user interface components" for 4.1.2. And let's all agree now that 1.3.1 is enough of a debacle to not even try to argue them there.

Make sense?

@DavidMacDonald
Copy link
Contributor

DavidMacDonald commented Nov 1, 2017

Steve's plain language version

Auto-updating and status update content can be programmatically determined, and the importance and relevance is set appropriately for assistive technologies.

This doesn't require a status update, only that if it is given, it is determinable... I like the idea of working in the plain language version for a bit...

Short handle Change in content, OR Status : or...

Programmatically determinable status messages are provided for changes in content and the importance and relevance is set appropriately for assistive technologies.

Change of content: dynamic content such as notice of success, error, progress, warning, new, changed,Auto-updating or hidden content, which result from either user action or application status changes, and which do not take focus.

set appropriately: cool definition here that says something like. Messages which can be read within 10 seconds at x words per minute, have the role which matches their function (marquee, status, alert, log, timer, progressbar)

@mraccess77
Copy link

@awkawk SCR21 seems more like a technique to show how to add content to a page that will be better seen by AT -- that is an accessibility supported technique -- but by itself doesn't really show any actual association or notification specifically. In one of the examples focus is moved to the new content.

@steverep
Copy link
Member

steverep commented Nov 1, 2017

@DavidMacDonald,

This doesn't require a status update, only that if it is given, it is determinable.

Right, that's by design and I don't see it as deficient. Requiring messages is a completely different SC, and WCAG 2.0 already attempts to cover it with criteria like SC 3.3.1, Error Identification.

@awkawk
Copy link
Member

awkawk commented Nov 1, 2017

@steverep No, I'm not going to agree that 1.3.1 is such a debacle that we should pretend that something that the WG has agreed was covered by it isn't covered in our more enlightened present view. Sorry! :)

@mraccess77 I agree that SCR21 is about adding content to a page. Once it is added to the DOM, that content is programmatically determinable, and if a user happens upon it by chance or by experience knows to look for it (e.g I passed a "Cart: 0" item when I started reading the page, I will go back to see if my item was actually added) then that user can get that information. What is missing is the the notification part, and that is what the SC we have is addressing.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

In one of the examples focus is moved to the new content.

Yes, and moving focus to new content is a technique that accomplishes notification; although where someone has the ability to move focus to new content, the content would typically be a user interface component (a link in the example) and thus already be addressed in 4.1.2 .

@mbgower
Copy link
Contributor Author

mbgower commented Nov 1, 2017

I'm thinking we may want to make our 'plain language' draft even more plain language, but before I attempt that, I want to return to what I listed as the four broad considerations we need to cover:

  • indicating that a region of content has info that can dynamically update (using the term 'region' generically here)
  • indicating that a region has been updated, AKA notification
  • conveying the change in content (including the removal of content-- think of how a 'busy' status message that disappears is conveying information by its absence)
  • providing author requirements/guidance on indicating the importance and relevance of the changed content

Does anyone in the discussion think this list is incorrect or over-ambitious? Is there something to add or drop?

@steverep
Copy link
Member

steverep commented Nov 1, 2017

@awkawk, okay okay... it's perfect. Let me just ask the practical question then: Do you feel that marking up any of the following is covered by 1.3.1 or any other SC?

  • Status updates (including errors) with ARIA alert, status, etc.
  • Progress bars with ARIA progressbar and required attributes
  • Chat or other logs with ARIA log etc.

I could certainly make an enlightened argument that the way those types of elements behave is information conveyed in presentation that I do not have programmatically available to me.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 28, 2017

Suggested wording change on Monday's working group call was:

For content which does not take focus and which dynamically updates as a result of user action or application status changes, notification of changes to content can be programmatically determined by user agents, including assistive technologies.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 28, 2017

Comments from today's discussion:

  • Steve wanted to remove "user action"
  • James questioned whether this ruled out moving focus
  • he also asked about content that appears at the same time as content which takes focus which doesn't take focus, such as a bunch of tabular data in response to a search query
  • someone questioned the use of the phrase " is available to user agents, including assistive technologies"

@mbgower
Copy link
Contributor Author

mbgower commented Nov 28, 2017

@steverep and @DavidMacDonald .Attempt at a rewrite to take these into account:

For status messages which do not take focus on change, notification of changes of content can be programmatically determined by user agents, including assistive technologies.

Status messages:
Notices that provide information to the user, such as the success of an action, the waiting state of an application, the progress of a process or the existence of errors.

OR

For status messages which cannot take focus on change, notification of changes of content can be programmatically determined by user agents, including assistive technologies.

OR

For status messages, notification of changes of content can be programmatically determined by user agents, including assistive technologies.

For status messages,
Changes in content are programmatically determinable through role or attributes
Notification of changes to content is available to user agents, including assistive technologies.

To re-emphasize, we also need to ensure we explain the relationship to 4.1.2 Name, Role, Value and 2.2.1 Pause, Stop, Hide.

I also wanted to note that the "including assistive technologies" phrase was lifted directly from 4.1.2. I assume there was a reason it was included there, so it makes sense to reuse here.

I still have a nagging feeling that making the notification programmatically determinable is problematic, but i cannot adequately voice at this moment. Will try to revisit.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 29, 2017

In discussion, David raised the idea of ensuring we capture a "18 results" message on search results as an example of a status message

@mbgower
Copy link
Contributor Author

mbgower commented Nov 29, 2017

David wants to distinguish between notifications of new content and all that new content being read out. The former is a status notices; the latter is chatter no one wants

@mbgower
Copy link
Contributor Author

mbgower commented Nov 29, 2017

Final wording:

Status messages are programmatically determinable through role or attributes such that they can be announced by assistive technologies without receiving focus.

Status messages
Notices that provide information to the user, such as the success of an action, the waiting state of an application, the progress of a process, the existence of errors, or notification of changes to content.

Status content is an alternative?
Fine with throwing in "In markup languages..."

@jasonjgw
Copy link

I suggest "can be programmatically determined" and "can be presented to the user" (rather than "announced", which suggests a spoken interface only). These changes are editorial.

@DavidMacDonald
Copy link
Contributor

DavidMacDonald commented Nov 29, 2017

Incorporating Jason's comments:

Status messages are programmatically determined through role or attributes such that they can be presented to the user by assistive technologies without receiving focus.

I'm fine with that.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 29, 2017

Yes, I think Jason's change addresses the comments Steve had at the end which we were going to tackle by including the following in the Understanding: “announced” can cover a variety of modalities for surfacing information to the user from sound to spoken text to Braille display.

Nice to have someone look at it fresh after we're all punch drunk with fatigue :)

The final things Steve had requested were some revisions to the definition of status messages -- David had a few words about that too -- and a consideration to renaming the SC.
First objective: remove the 'such as qualifier' in opposition, which arguably meant that any information provided to the user could be a notice:

Notices that provide information to the user on the success of an action, the waiting state of an application, the progress of a process, the existence of errors, or notification of changes to content.

Objective two: consider working in the idea of this being dynamic content that is not present in the DOM initially. I also worked in David's desire to track changes to the UI through user action by adding in "or results of"

Changes in content that provide information to the user on the success or results of an action, the waiting state of an application, the progress of a process, the existence of errors, or similar notifications.

I'm pretty happy with that.

Objective three: consider a new name for the SC. I guess the obvious title is Status Messages. But I feel like we're pushing our luck a bit with this. My feeling is that if we leave it as Change of Content it will give us some leeway in the Understanding document to riff on some of David's considerations. I also suspect that someone in the working group will propose a new title. Maybe if we put the focus to the group by asking that question on the title?

The submitted version would read:

3.2.7 Change of Content
Status messages are programmatically determined through role or attributes such that they can be presented to the user by assistive technologies without receiving focus.

Status messages
Changes in content that provide information to the user on the success or results of an action, the waiting state of an application, the progress of a process, the existence of errors, or similar notifications.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 29, 2017

Final thought. Do we need to define status messages as NOT being user interface components? I'm worried that someone might make the argument that if the status message is in a dialog or some other form of notice that takes focus, this SC seems redundant and possibly even disruptive.

Changes in content that are not changes of context, which provide...

OR
Can we just handle this in the Understanding document with something like "Status messages that are presented as changes in context (through such roles as dialog boxes), meet this success criterion."

@steverep
Copy link
Member

@mbgower, I like the latest definition which starts by saying "changes in content..." That solves one issue.

I don't think we should leave the title as is; it should reflect the scope clearly. Something like "Status Messages" or "Status Changes" would work best.

And I think that the SC saying without focus is enough. As I said last night, we don't want an "out" just by putting tabindex=0. The behavior of focus is what matters, not whether it can or cannot have focus.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 29, 2017

@DavidMacDonald @steverep @jasonjgw, please offer final comments:

3.2.7 Change of Content
Status messages are programmatically determined through role or attributes such that they can be presented to the user by assistive technologies without receiving focus.

Status messages
Changes in content that provide information to the user on the success or results of an action, the waiting state of an application, the progress of a process, the existence of errors, or similar notifications.
OR
Status messages
Changes in content that are not changes in context, that provide information to the user on the success or results of an action, the waiting state of an application, the progress of a process, the existence of errors, or similar notifications.

@steverep
Copy link
Member

  1. I still think we need to change the name to reflect the scope.
  2. Change "attribute" to "properties" because it's less tech-specific, role is an attribute, and 4.1.2 uses "properties.
  3. I don't see any need to confuse the definition by mentioning changes in context. If I'm catching on to what you're worried about, then just move the "without taking focus" part into the definition. For example, by saying "status messages do not take focus when they appear or change."

@mbgower
Copy link
Contributor Author

mbgower commented Nov 29, 2017

Oops, sorry about missing new title @steverep !
The issue with putting the 'without taking focus' into the defn is that then someone could say 'i've met it. just move the cursor to the new text and jaws reads it'. I'm okay with crossing that bridge when we have to and leave without the context qualifier -- although I think that works!

3.2.7 Status Changes
Status messages are programmatically determined through role or properties such that they can be presented to the user by assistive technologies without receiving focus.

Status messages
Changes in content that provide information to the user on the success or results of an action, the waiting state of an application, the progress of a process, the existence of errors, or similar notifications.

@spanchang
Copy link

This SC is very different from all other SCs as it specifically dictates how notifications are to be made programmatically determinable: i.e. using role or other attribute. Is that not how everything is made accessible? By using a particular tag or attribute?
So why specify this requirement for this SC?
By the way it is documented that relying on UA/AT support for accessibility-markup is ok for satisfying some SCs like SC 2.4.4 (reading linked context). That is a situation where one can read context without moving focus from the link.

I am glad to see that the originally proposed SC for "change in content" has undergone a significant metamorphosis since I raised the objection in issue 539.
Apparently there is consensus on the objections raised in the articles:
http://www.mindoversight.com/?p=171
and
WHAT’S THE VOID IN WCAG 2.0 THAT THE PROPOSED "CHANGE IN CONTENT" SUCCESS CRITERION 3.2.6 ATTEMPTS TO BRIDGE?
(http://www.mindoversight.com/?p=168)
Thanks and best wishes,
Sailesh

@spanchang
Copy link

Will a JS alert satisfy the requirement?

@steverep
Copy link
Member

@spanchang, this transformation is now all about simply using the ARIA live region roles and their properties appropriately. The ones targeted here are those which are well accessibility supported: alert, status, log, and progressbar. Results can also be achieved by specifying aria-live and the other 3 properties separately or in conjunction with the role, but often the role defaults will suffice.

A JS alert is not in scope here because a screen reader will jump focus to that. In other words, it does not meet the definition of a status message per this SC.

@mbgower
Copy link
Contributor Author

mbgower commented Nov 30, 2017

Will a JS alert satisfy the requirement?

To build on what Steve is saying, any info displayed through a js alert triggers a change in context, and so, according to the definition of status message is not applicable.

Language for status message definition agreed on today's call:

Changes in content that are not changes in context, that provide 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.

There's nothing wrong with using a dialog to alert users of issues. This SC is covering a situation where an author uses javascript to add text (i.e., whatever the author put into the alert in your example) directly into the page content instead. It doesn't take focus, and there's no way for the AT to understand it has been added unless it is given the proper role AND any properties that role has that cover communication to the AT are appropriately set to give notice to the AT (i.e., it cannot put aria-live="off").

@mbgower
Copy link
Contributor Author

mbgower commented Nov 30, 2017

Apparently there is consensus on the objections raised in the articles:
http://www.mindoversight.com/?p=171

I wouldn't say there is consensus, but there was a decision made to reduce the scope of the SC down to something that could be adopted successfully in the working group's timeline, which would still be of demonstrable benefit.

@spanchang
Copy link

spanchang commented Dec 5, 2017 via email

@mbgower
Copy link
Contributor Author

mbgower commented Dec 6, 2017

@spanchang

But if that content lacks distinct presentational properties, will that content not be difficult for some sighted non-AT using PWD user groups to notice?

Possibly. But what presentational properties do you think would ensure all non-AT using PwDs would notice it? That is in the realm of conjecture. And if you could define any, would you want to insist those must be used by all designers? What we can say is that if such text is given an appropriate role to indicate it is a status message or whatever, that is arguably beneficial to any AT which wishes to do something with that, for whatever user group.

It could be a UI design / usability issue too that results in ordinary users too missing the changed content

Sure, but the task of the guidelines is not to prevent designers from making every poor design decision. It's to try to offset poor design decisions that adversely affect PwDs to a larger degree.

If presentational / styling properties are added, it will then be covered by SC 1.3.1 because that content has to be programmatically determinable too.

I think you're missing the point here. While something that is visually presented as larger text can be given a heading tag -- which will meet 1.3.1 -- that does nothing to alert anyone to the fact it has been added to the DOM after page load.

If an author brings such information into the UI as any kind of dialog, then it is handled fine by existing 2.0 requirements. But there are a growing list of situations where the author does not change the context of the user by pulling way focus in that manner; the author is content with assuming a user will see the new content being added.
Adding new content to the screen can happen from any number of motivations. We cannot conjecture on what those are. What we have done is attempted to define text updates that have the purpose of providing status information to the user. These are the most crucial for any user to detect in near real time.

is it a conscious decision to not consider the needs of non-AT using PWD groups?

I'm not happy with the way the wording got changed from 'user agents including assistive technology' to just assistive technologies. But that was an edit requested during review of the SC language. I'd prefer that get put back in, as I agree there is not clear reason to not specify user agents. That said, if the info is available to ATs, it is, I believe, by definition available to user agents since they are the ones handling the API. So I'm not sure it doesn't amount to the same thing.

@spanchang
Copy link

spanchang commented Dec 6, 2017 via email

@mbgower
Copy link
Contributor Author

mbgower commented Dec 12, 2017

if it is injected into the page and in a manner that is visually distinguishable it does serve as an alert or status update for the user and then needs the role of alert or such assigned to it.

Ah, I think I understand what you're saying: you want the status role assigned and a requirement for some kind of programmatic indicator through an attribute or whatever that makes the new content meet 1.3.1. Is that it?

If that is what you're asking for, that requirement already exists if there is any kind of styling applied to the text. If there's no styling, I agree there is nothing on which to hang an accessibility requirement for 1.3.1 -- other than the basic <p> or <br> elements

@spanchang
Copy link

Mike, You wrote:

Ah, I think I understand what you're saying: you want the status role assigned and a requirement for some kind of programmatic indicator through an attribute or whatever that makes the new content meet 1.3.1. Is that it?
If that is what you're asking for, that requirement already exists if there is any kind of styling applied to the text.

Consider the example at http://mars.dequecloud.com/demo/GlobalRedAlert.htm
Submit the form unfilled / partly filled and notice the error added within the h3 above the form.
Your statement above suggests you agree that failing to mark up the span tag within the h3 above the form for the global error message injected to the page fails SC 1.3.1 today, correct?
If so, should the status change SC not exclude such cases?
Ref Dec 7 2017 draft: https://www.w3.org/TR/WCAG21/
If there's no styling, I agree there is nothing on which to hang an accessibility requirement for 1.3.1.
In this case, a new SC under Guideline 1.4 should require that such content is distinguishable via its presentation properties.
Thanks,
Sailesh

@mbgower
Copy link
Contributor Author

mbgower commented Dec 15, 2017

Your statement above suggests you agree that failing to mark up the span tag within the h3 above the form for the global error message injected to the page fails SC 1.3.1 today, correct

If the message appears with the same formatting you use on your site for headings, then if the author does not mark it up with a heading tag, it seems like a pretty clear failure of 1.3.1. But as I hope is by now clear, that has little to do with the intent or wording of the Status Changes SC.

If so, should the status change SC not exclude such cases?

Why would failing to put your span inside the H3 have any bearing on whether the new text is surfaced to ATs? I feel like we're speaking at cross purposes here. There are no styling tags in HTML that are going to accomplish providing a 'notice' to users. Where you implement your text in something that causes a change of context, you accomplish that automatically, which is why that use case is excluded.

If there's no styling, I agree there is nothing on which to hang an accessibility requirement for 1.3.1.
In this case, a new SC under Guideline 1.4 should require that such content is distinguishable via its presentation properties.

You are welcome to propose such an SC, but that is an independent issue from what is being tackled here. The H3 in your example does not increase the ability for an AT to surface the new information -- that is accomplished with your proper use of an aria-live attribute. This SC ensures that in a situation like this, the aria-live attribute or an equivalent method of flagging the text is implemented.

@spanchang now that the SC has reached CFC and is part of the latest draft, I suggest it makes sense for you to open specific issues for the SC so that they can be considered by the larger working group.

@spanchang
Copy link

spanchang commented Dec 15, 2017 via email

@steverep
Copy link
Member

I think there is an outstanding task for this SC to be moved to Guideline 1.3, Adaptable. Its current home under 3.2, Predictable, seems very much incorrect. Anyone disagree?

@mbgower
Copy link
Contributor Author

mbgower commented Jan 15, 2018

Closing issue, since SC has been added to December published working draft.

@mbgower mbgower closed this as completed Jan 15, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants