Here are some thoughts and a small design exploration from me. This is based on the assertion model that @mcking65 shared in a separate issue, and the conversation that we had reviewing it.
I do agree that we need to make things simpler and easier to understand for testers
@mfairchild365 This week I ran the test for aria-details
on a11ysupport.io to familiarise myself with the data model and interface.
I struggled to figure out exactly how to perform the test. In particular:
- After reading the assertions, I wasn't sure exactly how I should perform the test, and what constituted success or failure.
- I was confused when prompted to select what command I used to perform the test, because I expected to be told what commands I should use. I wasn't sure which option was the right one for me to select.
- I didn't easily understand the options available to me when inputting the position of the virtual cursor before and after the command (eg. 'target', 'start of target', ...). I expected to be told, and felt concerned that I might not perform the right test in the right way.
From that perspective, I think that the conversation we're having now about how to simplify things for users is very helpful and needed.
I also realise that the test pages and instructions on a11ysupport.io are generated efficently at scale, and that clearer and more granular instructions might not be viable.
My thoughts on the simplifications that @mcking65 has been exploring
Here's the link again to the assertion model that @mcking65 shared in a separate issue. My comments here focus not so much on the data model itself, but on how testing instructions can be presented.
What I think works
1. I like that Matt's table gives more specific instructions about test methods.
I think that it's important to tell testers what they need to do and how, rather than asking them what they did.
2. I like the idea of describing expected results in non-technical terms as much as possible.
I think that assertions should be written to help people who are not fully confident in their knowledge of accessibility.
3. I like the idea of organising testing instructions and results in a table.
Seeing the different tests in different rows, with instructions on the left and results on the right, felt very intuitive to me. It instantly gave me an clear mental model of how to use the interface (ie. the table).
4. I like the idea of wrapping different 'test methods' into one single test.
I like how a tester is expected to test how a checkbox is announced, when reached in different ways, in one go. I imagine that following this idea will help us simplify the interface, without making things harder for users. (Caveat: I don't fully yet fully understand the downsides of such a simplification for our data).
What I think we can simplify further
Here are a few suggestions:
1. Remove / hide columns that are useful to us but not to testers
- The 'Importance' and 'Tested attributes' columns are important parts of our data model, but I imagine that we could hide this information when people are performing tests, so that the interface and what is required of them is easier to understand at a glance.
2. Organise columns in an order that makes the test instructions easy to read and understand
The 'Importance' column is currently placed between 'Test name' and 'Assertion'. I believe that we can make test instructions clearer by purposefuly ordering columns in a way that reads naturally.
I personally like using the Gherkin syntax. I think that it makes test instructions and assertions much easier to understand and nicer to read.
- 'GIVEN' is for precondition(s)
- 'WHEN' is the interaction that the user/tester performs
- 'THEN' is the result of that interaction (ie. how the interface reacts).
3. Merge some cells so that the structure of the table is obvious at a glance to sighted users.
E.g. The 'Screen Reader mode' cells could be merged so that it's immediately obvious that the top half of the table is for 'Reading mode', and the bottom half for 'Interaction mode'
Caveat: I don't know whether merging cells makes things harders to understand or operate for screen reader users.
A little exploration I did
I put together a simplified table in HTML following this direction.
The table is not interactive, and was done very quicly with barely any styling. (I initially had this in a Excel file but I wanted to have better screen reader support for the double headers and merged cells).
I imagine that testers will find a table like this easier to understand at a glance, and more inviting. Please let me know your thoughts.
I am imagining that our interface for contributing test results could be just a table for test case. (Of course this table would need to be dynamic based on what browser and assistive technology users have selected).
Please tell me what I'm not seeing / considering, so that we can make things better together.
What I'd like to explore next
Splitting the cells in the 'Then' column so that assertions are more granular.
My intuition is that we might be able to make things easier both for testers and for us by splitting the broad assertions in Matt's table into more granular ones. (eg. "role", "name", "state" into separate rows).
If we keep cells under "Given that" and "When" merged as is, I believe that we might be able to afford the extra granularity without making things look too complicated. (I'll give it a try).