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

Adds a defintion for essential text change #1916

Draft
wants to merge 25 commits into
base: develop
Choose a base branch
from

Conversation

tbostic32
Copy link
Collaborator

In Text content that changes automatically can be paused, stopped or hidden it was determined that we need to have essential in the expectation. However, essential is an ambiguous term, so we need to create a new definition that handles the various cases where text changing is an essential function of a page.

Need for Call for Review:
This will require a 1 week Call for Review

How to Review And Approve

  • Go to the “Files changed” tab
  • Here you will have the option to leave comments on different lines.
  • Once the review is completed, find the “Review changes” button in the top right, select “Approve” (if you are really confident in the rule) or "Request changes" and click “Submit review”.
  • Make sure to also review the proposed Call for Review period. In case of disagreement, the longer period wins.

@tbostic32 tbostic32 self-assigned this Sep 7, 2022
@tbostic32 tbostic32 requested a review from WilcoFiers September 7, 2022 22:41
An _essential text change_ occurs when the text content of an HTML element is required to convey accurate information to the user. An _essential text change_ may appear in any of the following forms:

1. Providing context - Text is changed to provide users with additional information required to understand the current state of the page. For example, while searching for results, text may change to convey the page is *loading* to provide context to the user.
2. Live updates of important information - The content automatically updates to show the most recent information available from a data source and should not be ignored by the user.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This feels very awkward, namely specifying that the information must be important in order for this to qualify. I felt the need to do this since I wouldn't qualify the examples given in Understand 2.2.2 like weather or stock ticker information as important enough to be exempt from having controls. However, there could be information such as safety alerts/updates that I would consider to be exempt.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, this one's difficult. Who decides what should and what should not be ignored? I think we should maybe just try to give a list of the types of things that shouldn't be ignored? Maybe, financial data, information on the status of a user session, that kind of thing.

- DOM tree
---

An _essential text change_ occurs when the text content of an HTML element is required to convey accurate information to the user. An _essential text change_ may appear in any of the following forms:
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I find this to be awkward, but I also couldn't figure out a good way to say it without doing something like:

An essential text change occurs when the changing of text on a page is essential.

An _essential text change_ occurs when the text content of an HTML element is required to convey accurate information to the user. An _essential text change_ may appear in any of the following forms:

1. Providing context - Text is changed to provide users with additional information required to understand the current state of the page. For example, while searching for results, text may change to convey the page is *loading* to provide context to the user.
2. Live updates of important information - The content automatically updates to show the most recent information available from a data source and should not be ignored by the user.
Copy link
Member

Choose a reason for hiding this comment

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

Yeah, this one's difficult. Who decides what should and what should not be ignored? I think we should maybe just try to give a list of the types of things that shouldn't be ignored? Maybe, financial data, information on the status of a user session, that kind of thing.

Co-authored-by: Wilco Fiers <WilcoFiers@users.noreply.github.com>
@tbostic32
Copy link
Collaborator Author

@carlosapaduarte From our review we found that the applicability is somewhat hard to understand, so I would like to propose the change below:

  1. Remove the no-child-changed and not-alone applicability conditions
  2. Modify the change condition to only consider the text content of child text nodes (only direct children, not all descendants)

At least my understanding was that the no-child-changed condition was meant to prevent an parent element from being applicable when a the text content of a child was changed. If we only consider the text content of child text nodes then the an ancestor node will never be applicable when one of its descendants text changes.

@tbostic32 tbostic32 requested a review from Jym77 September 28, 2022 13:39
Jym77
Jym77 previously requested changes Sep 29, 2022
tbostic32 and others added 4 commits September 29, 2022 08:29
Co-authored-by: Jean-Yves Moyen <jym@siteimprove.com>
Co-authored-by: Jean-Yves Moyen <jym@siteimprove.com>
- DOM tree
---

An _essential text change_ occurs when the modification of the text content of an HTML element is necessary to convey accurate and timely information to the user. An _essential text change_ may appear in any of the following forms:
Copy link
Member

Choose a reason for hiding this comment

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

Would something like a clock or a count-down be considered essential. For example on a new years calendar, an auctioning site counting down when the auction closes, or a ticket site counting down to when tickets go on sale?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I think if it is a core functionality of the website then it would be considered essential. E.g., in a web page that is only a large clock counting down to new year then the text change of the clock would be essential.

An _essential text change_ occurs when the modification of the text content of an HTML element is necessary to convey accurate and timely information to the user. An _essential text change_ may appear in any of the following forms:

1. Providing context - Text is changed to provide users with additional information required to understand the current state of the page. For example, while searching for results, text may change to convey that the page is *loading* to provide context to the user.
2. Live updates of important information - The content automatically updates to show the most recent information available from a data source and should not be ignored by the user. For example, updates about the users browsing sessions status or important safety information like evacuation instructions in the case of a natural disaster would constitute an Essential Text Change. Oppositely, information such as stock prices or advertisements are not important information and would not be considered an Essential Text Change.
Copy link
Member

Choose a reason for hiding this comment

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

This still feels fairly open-ended. Who decides that something is important, and that the user shouldn't ignore it? I think I'd like to see a list here of scenarios what we think are essential.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I would agree, though the fact that it isn't objective helps with that some. I could add a few more examples so our total list would be the examples below. Would that be sufficient?

Important information:

  1. Browsing session status (from definition)
  2. Safety information (from definition)
  3. Changing text which represents a core functionality of the web page, such as the time readings at https://www.time.gov/ or a countdown timer for an auction site (I'm not sure if this one works, as pausing it you should still be able to get something from the site)
  4. A change in text when using collaborative systems, such as a chat messenger, forum, or other collaboration software.
  5. A text change triggered by user input, such as selecting an option in a text-based adventure game.

Non-Important Information:

  1. Stock ticker information (from definition)
  2. Advertisements (from definition)
  3. Live sports scores
  4. "Rolling" updates such as job postings, or news article titles and links
  5. Countdown timer to an event that does lose opportunity for the user, such as a countdown to the start of a sports game.

Copy link
Member

Choose a reason for hiding this comment

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

I like that, yeah that sounds good to me.

@Jym77 Jym77 dismissed WilcoFiers’s stale review December 1, 2022 12:16

Changes were done

An _essential text change_ occurs when the modification of the text content of an HTML element is necessary to convey accurate and timely information to the user. An _essential text change_ may appear in any of the following forms:

1. Providing context - Text is changed to provide users with additional information required to understand the current state of the page. For example, while searching for results, text may change to convey that the page is *loading* to provide context to the user.
2. Live updates of important information - The content automatically updates to show the most recent information available from a data source and should not be ignored by the user. Importance of information is often subjective and requires some amount of human understanding, so we have provided examples below to help illustrate when text should be considered important.
Copy link
Member

Choose a reason for hiding this comment

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

This is still open ended. What I was really hoping for here is a semi-definitive list of things that are essential. Anything that isn't on the list isn't essential. I tried to do something like that with the definition of essential text presentation.

Copy link
Member

Choose a reason for hiding this comment

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

Agree that It is open-ended, but this is not an objective definition. Does it really have to be close-ended?

An _essential text change_ occurs when the modification of the text content of an HTML element is necessary to convey accurate and timely information to the user. An _essential text change_ may appear in any of the following forms:

1. Providing context - Text is changed to provide users with additional information required to understand the current state of the page. For example, while searching for results, text may change to convey that the page is *loading* to provide context to the user.
2. Live updates of important information - The content automatically updates to show the most recent information available from a data source and should not be ignored by the user. Importance of information is often subjective and requires some amount of human understanding, so we have provided examples below to help illustrate when text should be considered important.
Copy link
Member

Choose a reason for hiding this comment

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

Agree that It is open-ended, but this is not an objective definition. Does it really have to be close-ended?

@@ -36,7 +36,7 @@ This rule applies to any [HTML element][] that has a [visible][] [text node][] a

## Expectation

For each test target there is at least one set of [instruments][instrument], where each [instrument][] is in the same [web page][] as the test target or can be found in a [clearly labeled location][] from that [web page][], to achieve at least one of the following objectives:
For each test target, the text change is a [non essential text change][] and there is at least one set of [instruments][instrument], where each [instrument][] is in the same [web page][] as the test target or can be found in a [clearly labeled location][] from that [web page][], to achieve at least one of the following objectives:
Copy link
Member

Choose a reason for hiding this comment

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

We should have some examples for essential text changes passing the rule.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Coming back to this after way too long, I think this rule will actually be subject to the changes we are suggesting in the subjective applicability discussion. I think this would fall into the third category of "[Thing] is/has [subjective attribute]". In this case, filling in the blanks, it would be 'Text change is not non-essential'.

With this, we could move this into the applicability and not have to worry about having that test in the expectation which should really be there, and we wont need to include an example in the test cases.

tbostic32 and others added 2 commits July 6, 2023 08:06
Adding wilco's suggestions

Co-authored-by: Wilco Fiers <WilcoFiers@users.noreply.github.com>
@tbostic32 tbostic32 requested a review from WilcoFiers July 6, 2023 12:19
@WilcoFiers WilcoFiers marked this pull request as draft July 20, 2023 13:58
@WilcoFiers
Copy link
Member

Waiting for subjective applicability / state discussions to resolve before picking this back up.

@Jym77 Jym77 added the Blocked Blocked by another PR/Issue label Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Blocked Blocked by another PR/Issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants