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

Definition of "user agent" in mobile context #63

Open
JJdeGroot opened this issue Jul 31, 2024 · 2 comments
Open

Definition of "user agent" in mobile context #63

JJdeGroot opened this issue Jul 31, 2024 · 2 comments

Comments

@JJdeGroot
Copy link
Member

Some Success Criteria have exceptions for user agent provided features and limitations.

For example:

1.4.11 Non-text Contrast has this exception: "except where the appearance of the component is determined by the user agent and not modified by the author"

We need to define user agent in a mobile context.

User agent definition in WCAG 2.2

any software that retrieves and presents Web content for users

Example: Web browsers, media players, plug-ins, and other programs — including assistive technologies — that help in retrieving, rendering, and interacting with Web content.

User agent mapping in WCAG2ICT 2.2

For non-web ICT, “user agent” needs to be viewed differently. In WCAG 2, the term “user agent” only refers to retrieval and display of web content. For non-web ICT, the term “user agent” refers to retrieval and display of separate content that is not on the Web, which WCAG2ICT refers to as a “document”. Within WCAG2ICT, the term “user agent” is used as follows:

user agent (as used in WCAG2ICT)
any software that retrieves and presents [documents] for users

Share your thoughts for applying to mobile apps as a comment below.

@JJdeGroot JJdeGroot added the documentation Improvements or additions to documentation label Jul 31, 2024
@JJdeGroot
Copy link
Member Author

  • For 1.4.11 Non-text Contrast, there is an exception for components where the appearance is determined by the user agent AND not modified by the author

    • Where do we draw the line for components provided on Android and iOS?
    • For example, Jetpack Compose is a declarative UI framework which requires developers to add extra dependencies.
    • To add Material Design components, you also need to add extra dependencies. Do we still consider these to be provided by the user-agent when they are developed by Google?
    • It can be difficult to check whether a component was modified by the author, because auditors usually don't have access to the source code. E.g. it's not easy to "inspect element" to check for CSS like you can do on the web.
  • For 2.2.1 Timing Adjustable, the user is able to adjust some timing related settings at the system level on Android and iOS

    • Is this an acceptable "mechanism"? Note 1 in the definition mentions: "The mechanism may be explicitly provided in the content, or may be relied upon to be provided by either the platform or by user agents, including assistive technologies."
    • This not only includes user agents, but also the platform, in this case Android and iOS; therefore it's a sufficient technique to conform?
    • But... users might not be aware of such system settings, because they can be buried multiple levels deep
  • For 2.2.2 Pause, Stop, Hide, developers can also use system settings such as reduce motion to stop or hide motion.

    • But... on iOS the setting is named "reduce motion", when motion is stopped or hidden, it's not "reduced" as the settings implies
    • And users might not be aware of these settings, it's also not always possible to deeplink to the relevant settings screen.

@AlainVagner
Copy link

The definition given by WCAG2ICT seems good enough to me. In EN 301 549, mobile apps are considered as "software". Here it could fit in the same way. IN WCAG2ICT, 1.4.1, 2.2.1 and 2.2.2 have been adapted to be applicable to "user agent or software" or "non-web document or software". They seem to make a difference though between "software" (=app) and "platform software" (= the operating system).

WRT 1.4.11 I would not speak of user agent here, except maybe for web views. As a developer, if you have dependencies in your app, you are still responsible of the choice of the dependencies. If the OS does something bad this is for me out of scope. It would not be easy for an auditor to know if some issues are related to the underlying OS but this information could be mentioned in an accessibility statement. i.e. by default an auditor would consider the issue as non compliant, but if the developer provides some extra info, this non compliance could be removed.

About the system settings, for me it is a little bit a chicken and egg issue. If no app respect these settings, no one will know about these settings. I like the idea of having a standard place to set things up and have it respected in most apps. If you have a setting per app, it means that as a user, you will have to configure this option in every app you use.
Is it possible to have a setting in the app, and the default state of the setting would be based on the OS-level setting?

@JJdeGroot JJdeGroot added definition and removed documentation Improvements or additions to documentation labels Oct 9, 2024
@JJdeGroot JJdeGroot changed the title Definition of User-Agent in mobile context Definition of "user agent" in mobile context Oct 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants