IBMa / equal-access

IBM Equal Access Accessibility Checker contains tools to automate accessibility checking from a browser or in a continuous development/build environment
Apache License 2.0
615 stars 76 forks source link

Improve Checker capabilities with Chatbot-like implementations that refresh the page constantly with end-user input #1703

Open philljenkins opened 9 months ago

philljenkins commented 9 months ago

Pages with Chatbot implementations often delay the loading and/or frequently update the page. The Checker users, especially those who are not developers of the page being tested, do not know that the Chactbot contents (or page) were changed, or will soon be changed, which results in confusing Checker results, especially in the Keyboard Checker Mode visualizations.

Some ideas and approaches to consider:

  1. Notify the user that the page has changed since the last scan. Also see #1056
  2. Notify the user that the page has changed since the KCM visualization was drawn and may therefore be inaccurate
  3. Prompt the user to re-scan that page and re-run KCM if it has currently been run
  4. Add a setting (Option) to clear the results and clear the KCM when the page has changed
  5. Add a setting (Option) to refresh the results (re-scan automatically) and re-draw the KCM when the page has changed. every xx minutes

Test with these IBM ChatBots:

Use these 3 chatbot implementations as test cases to determine how best to improve the Checker for checking AI Chatbots:

Address the following questions and explore best approaches:

How to reproduce the issue

What to do

Why is this important?

philljenkins commented 9 months ago

Phill and Josiah met briefly and determined to open an issue to determine future consideration and prioritize our recommendations.

philljenkins commented 9 months ago

Checking the AskHR Chatbot shows the complexity, in this screenshot, the component in error is off-screen

shunguoy commented 9 months ago

triage: rewrite the issue,

also see #1056 about how the Checker KCM should handle components that float on the page.

philljenkins commented 8 months ago

@marcjohlic Issue re-written to create a prioritized list of possible improvements to the Checker, as it relates to Chatbots. Then, to-be-determined if one or more can then be implemented in this release.

philljenkins commented 8 months ago

@tombrunet Do you want to make these/one of these approaches more generic or as proposed more specific to common Chatbot-like behaviors?

philljenkins commented 8 months ago

Moving to Release backlog to be considered in this release.

philljenkins commented 4 months ago

This is not an Engine Issue, but an Extension issue (changed Epic). No rule changes are needed or are in scope. Because this is about notifying the user and/or adding a setting, Design should be included.

However, this initial task is more of a technical discussion (as noted above in the description) to determine what the Checker can do.

philljenkins commented 3 months ago

@shunguo added:

an auto-page refresh has other impacts too. For example, go to https://finance.yahoo.com/calendar/, scan the page, wait a little while, then click a Violation (message row), user will see the original scan results disappear (depending on timing) and a message replacing it: "This page has not been scanned." displayed. Checker extension needs a better handling of the developer-side (not user initiated) page refresh.

Screenshot 2024-04-01 at 3 58 14 PM

But this (reload whole page vs change in DOM) is probably a separate issue/feature. The user is told by the Checker that the page has not been scanned, although not told it was "re-loaded" and not told why. Also, the Checker does not tell that this is a separate accessibility issue that the developer should fix, namely reloading (WCAG uses "auto-updating") the page content without end-user knowing about it:

2.2.2 Pause, Stop, Hide (Level A) For moving, blinking, scrolling, or auto-updating information, all of the following are true: ... For any auto-updating information that ... there is a mechanism for the user to pause, stop, or hide it or to control the frequency ... unless ... essential.

3.2.5 Change on Request (Level AAA) Changes of context are initiated only by user request or a mechanism is available to turn off such changes.