Giter Club home page Giter Club logo

Comments (1)

howard-e avatar howard-e commented on September 24, 2024

@mcking65 it's been some time since we initially discussed this so wanted to bump this thread with some thoughts and questions and also follow up on if these requirements are still aligned given other changes.

One possible approach is that the commands file file name specifies the minimum version required. For example:

voiceOver_macOS+14.3-commands.csv

A potential alternative to creating a separate file could be adding a new column to the existing {at}-commands.csv file, and that's to primarily limit technical changes required in the script generator. There are pre-existing assumptions that a single commands.csv is matched to a single AT.

But in exploring this idea, I wonder if this negatively impacts test authors? A sole benefit of the above (to me) is working with already known files.

But a new column which could just indicate the minimumAtVersion would mean that additional rows would have to be created to store the version specific settings. I can acknowledge that the {at}-commands.csv files could get uncomfortably larger if there is a need to consistently handle more AT version specific setting changes with new AT version bumps.

Another thought is if a test author may want to remove commands for a specific AT version in the future. In this case, then a different column could be preferred over just minimumAtVersion which could handle version specific settings + command exclusions or just a new column along with minimumAtVersion which handles potential command exclusions but even more business logic in a single file could become problematic at some point.

Then, if a run in the test queue specifies either a minimum version of 14.3 or a version that is newer than 14.3, the test runner would use that commands file. Similarly, in the reports, the commands shown would match the version requirements specified by the commands file.

For backward compatibility, if there are multiple files for the same AT and one does not specify a minimum version, it would be assumed to be applicable to versions that are older than the version specified by the file with the earliest minimum version.

The version numbers specified would need to exactly match the version numbers specified in the version list in the app.

Sounds good!

To be completely robust, the version numbers specified in the app should have approximate release dates so versions can be reliably sequenced in time.

Sounds good and the app is already tracking those.

Some additional questions before moving this forward:

  1. Can we expect that a test author may also add and remove commands for a new version?
  2. What is the expectation of what’s displayed on the review pages when a version specific setting is present?

Something like the following in the commands instructions works?

... If any settings are specified in parentheses, ensure the settings are active before executing the command or command sequence.

  • Space (virtual cursor active)
  • Enter (virtual cursor active)
  • Space ({NEW-JAWS-SETTING} for JAWS 2026)

Something like the following in the assertion tables works?

Space ({NEW-JAWS-SETTING} for JAWS 2026): 1 MUST, 0 SHOULD, AND 1 MAY assertions

Priority Assertion Phrase Assertion Statement
MAY convey role 'alert' Role 'alert' is conveyed
MUST convey text 'Hello' Text 'Hello' is conveyed
  1. Also any thoughts for the collection form in this repository's rendered pages?
  2. In the app, the collection form will already know which settings to show since the AT version requirement would be known. But the same question applies for the review page in the app.

from aria-at.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.