-
Notifications
You must be signed in to change notification settings - Fork 28
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
Initial design for displaying tests! #15
Comments
Hi all, I went through the initial design @spectranaut had updated, pretending I'm a tester and summarized my thoughts as follows. For each test, I categorized my thoughts into four groups.
Perhaps of help, I recorded my user testing and put them in the following folder. [Reading checkbox][1. Overall design] [2.Instruction] [3. Record Results] [4. Results for test (after submit)] [Operating checkbox][3. Record Results] [Read checkbox Grouping ][2.Instruction] [3. Record Results] *Numbers in parenthesis corresponds to time on the recording. |
Response to @Yohta89's experience: Clear changesBugs to fix:
Easy things to change:
Things I might not get to in the next two weeks, but should be implemented:
Design issues I am not sure how to solve
Things to document:
|
I've just reviewed the latest updates to the prototype. I think that it's great work, well done! And I also love that @Yohta89 has actually done a user test and videoed it. I want to work with more people like you Yohta! I've added some thoughts on the issues highlighted by @Yohta89, and also on other issues that I've found. Issues raised by YohtaRegarding point 1.2 in Yohta's comment regarding the separation between the two main sections on the pageRewording the headings and nesting them slightly differently might help. For example:
Regarding point 1.3 in Yohta's comment regarding disabling the submit buttonMy understanding of screen reader user experience is that it's best to not disable submit buttons, as they stop being discoverable. Instead, the submit button could stay enabled at all times, but if pressed too early, the page should display and announce the errors that need to be fixed because the user is able to successfully submit the page. You can see a live example of this pattern in the UK Government 'Register to Vote' form, or in TenonUI's form demo Regarding point 3.1 in Yohta's comment regarding "Other details"I was also confused by the label "Other details". Having followed this project, I have an idea of what we'd like testers to write here. But I doubt that testers would intuitively know what's expected of them. We should find a more descriptive label. Maybe:
Regarding point 3.2 in Yohta's comment regarding the distinction between the 'All Incomplete Output' and ' Incorrect Output'I agree that this is a bit confusing at first. Adding documentation could be part of the solution. But I don't think that adding more documentation will be enough (most humans don't read documentation most of the time). We need to try to make things simpler to grasp immediately and intuitively. I believe that this is also linked to another issue about column headers (see 5 just below). Other potential usability issues / suggestions5: Column header don't act as column headersNote: I believe that this is potentially a big usability issue. (We'd have to do usability testing to confirm how big a deal it actually is). But it's one that we could fix now or later, I believe, without disrupting the structure of how the page works. In a table, I'd expect the column headers to describe what's in each column. Instead, in this prototype, the column headers don't do that, but provide an affordance to tick all the radio buttons in that column. I understand why we do that, and I think that it's quite clever, and has a lot of benefits. So it is possible that we will choose to keep that design pattern as is. But first I'd like to highlight a usability issue that comes with this specific design, so that we can try to improve it. I was confused looking at these tables at first, because they work differently than almost any other table I've found online. (See first paragraph just above). Suggestion for simple, more familiar column headersMore usual, expected column headers would be "Correct output", "Incomplete output" and "Incorrect output". Then, in the table cells under each of these headers, I imagine that we could simply have radio buttons. Each of these radio buttons would be doubly labelled (using Suggestion for allowing users to tick all the "Correct", "Incomplete" or "Incorrect" options at onceThe table structure I just described would give us a table that (I believe) would work in a more familiar way, but it doesn't yet give users the possibility to check all radios in a column at once. I think that there are other ways that we could give users that affordance: For example, there could be an additional row, just after the column headers (and before the three existing rows). It might be that that additional row doesn't have a row header, but its row cells would each contain a button. The buttons would read "All correct", "All incomplete" and "All incorrect". Clicking one of the buttons would tick all the radio buttons in the same column in the rows below it. So, to recap, the buttons would be below the "Correct", "Incomplete" and "Incorrect" column headers, and would read "All correct", "All incomplete" and "All incorrect". I hope that that would make it clear what the buttons do (at least visually) while still allowing the existence of descriptive column headers. For screen reader users, the buttons could be labelled and described like this:
I don't know whether that solution would work as is. We'd need to prototype it. My intention here is to suggest that:
6: I find the current main page headers confusingI found the main page headers (i.e. 'Testing behaviour 1 of 2') unclear/confusing.
Suggestions for clearer, more descriptive page titlesWhat other word could we use?
I imagine that this one would work best. Or at least, I think that we should have something as descriptive as that 3rd one – something that gives an insight as to what's on the test page; and how that test page is different from the other one. 7: Pascal Case is harder to readThis one is a minor thing. 'Sentence case' is easier to read than 'Pascal Case', and more usual online. I think that Column headers should be in sentence case (e.g. "Other details" or "All correct output") |
Thanks @jfhector for the review! I'll get to it soon. @Yohta89 I can't replicate the bug where the test page closes every time you enter data into the form.. it looks like you are using Chrome, what is the exact version? |
I agree with all of your thoughts, @jfhector. We might be able to redesign the table as you have suggested. Additionally, it might be good to make the first column a row header, would (hopefully) provide a better group label for the series of radio buttons in the row. What do you think about moving the radio buttons that currently serve as column headers outside of the table entirely? Perhaps just before the table and after the 'Relevant speech output after command (required)' text field. |
I've just done a very quick interaction prototype for the alternative table structure I had in mind. I just wanted to see whether it'd work, and how to best make it work. I think that it does work, but let me know what you think, and how we might improve this (or the other table design) further. We might want to do some very quick usability testing to settle on a design. Where you can see the interaction prototypeHere's a live version of the interaction prototype. And here's the code for the interaction prototype. The code is in a new branch I've created, called 'prototypes-exploration'. I don't expect that we would ever merge anything from this branch. I only intend to use it for throwaway interaction prototypes and code examples. Do say if you think it's better to not have this new branch. Differences between this prototype and the description I gave in my previous comment above
My views on the interaction prototypeNote: I've only created this very quick prototype to test the idea I had in mind. I don't mind what solution we end up going for. What I like about the prototype
What I don't like about the prototype
Improvements that we'd need to make, if we went for a table structure like this
|
@spectranaut I'm using Google Chrome Version 78.0.3904.97 (Official Build) (64-bit). And it seems like I'm experiencing the same issue in Firefox (70.0.1) as well.
My confusion comes from the assumption for screen readers to announce the name of the condiment that has checked, since VoiceOver (which is my first choice for Screen Reader) announces 'checked, Lettuce, checkbox' in this test. However, you're right that this is a test about operating checkbox and we want to test the change in the state of a checkbox. |
I feel there is confusion around the concept of having shortcuts for marking output as correct. I think the table header or footer concept does not reflect real life. In real life, it will often be the case that all output is correct. But, if you are testing 3 things, e.g., role, name, and state, it is not likely that all 3 will fail. And, if they do, they could fail in different ways, i.e., one could be incomplete and the other incorrect. So, the shortcuts for all incomplete and all incorrect do not map to circumstances that are ever likely to occur in the real world. This creates a lot of confusing noise in the UI. The only conditions when we want to test 2 or more discrete elements of output at once and to have a shortcut for the result are when:
By combining tests in this way we can significantly streamline both writing and running tests, especially as more and more tests pass. I think the shortcuts need to be completely independent of the table. The shortcut choices are:
If correct is chosen, the table auto populates,otherwise, nothing happens in the table and the user has to choose an option for each behavior for that command. For example, Here is what I would like to hear if I were to tab into a shortcut radio group for JAWS insert+up output results on checkbox in the role, name, and state test: Insert+up arrow output, checked, correct: name, role, and state were conveyed, radio button 1 of 2. Then, if I arrow to the other option: checked, Incomplete or Incorrect: name, role, and state were not fully or accurately conveyed. That is, a radio broup labeled by a heading "Insert+Up output" that contains two buttons, one for correct, and another for incomplete or incorrect. The descriptive part of the label makes the meaning of the option fully understood. After the radio group, you can have the same table you have now, but it will not have controls in the column headers. That way, they will be read much more nicely by screen readers and be less confusing for everyone else. If you choose the shortcut radio for "correct", we could dynamically add a link right after the shortcut radio group for "Record results for NEXT_COMMAND" where "next_command" is the next heading text. However, that link would not be there if you choose incorrect. |
@Yohta89 I watched your video recording (awesome, so detailed!) and now I understand what you mean. It's true the window "disappears" but it's just behind your other window (as you know, because you navigate back to it). I assume testers will have to find their own ergonomic way of navigating between the test page window and the test results window. It might be helpful to have them side by side, each only taking up half the screen, for sited testers. |
Thanks for the thoughtful explorations of alternative "shortcut" radio buttons, @mcking65 and @jfhector ! I'll incorporate a few of your design choices, @jfhector, but I'll try putting the radio button outside of the table per Matt's suggestion. I'd appreciate more feedback on how to make this pretty to sited users once everything is in place. @mcking65 -- what should be the accessible name for the radio buttons that are within the table? Should it include the assertion, like in JF's prototype? |
another question for @mcking65: you asked for a link that will skip the table and send you to the next command to record results for. Can I implement this as a button that moves focus to the text input for the next key command, essentially skipping the table? |
@spectranaut asks:
As we discussed yesterday, the buttons we need for each assertion are:
It might be nice for screen reader users to hear the assertion in the accessible name. One way to include the assertion in the name might be like this: For correct output:
For no output:
For incorrect output:
I would love to have a pair of terms that sound less similar than "Correct" and "Incorrect". Maybe "Good output" and "Incorrect output"? Or, "acceptable" and "Incorrect". That could help reduce errors when recording results. |
@spectranaut asks:
Yes, except that Since it is moving focus to another place on the same page, it should be a link. |
Hey @jfhector and @mcking65 I add form validations and put the "all correct/all incomplete" radio buttons above the table. @jfhector in particular can you take a look because I am DEFINATELY not a designer and could use any opinions you have on how to make it better :) I only am just seeing @mcking65's recent comments so I'll get to them tomorrow. |
I'm discovering a lot as I attempt to craft tests for combobox. Most relevant to this issue is the fact that there are other types of results that we need to capture. Some of which I am aware are:
Here are my thoughts on incorporating these things. Mode Switch AssertionsThis is a type of assertion that is only relevant to specific screen readers that can switch between reading and interaction modes automatically, JAWS and NVDA. For example, when you Tab to a composite or text input widget in reading mode, the mode should switch to interaction. Actually, I guess VoiceOver automatically switches to interaction in some circumstances as well. So, say my test is titled "Navigating to an empty, collapsed, editable combobox in reading mode conveys role, name, and editable property." When conducting this test, the tester will navigate with arrow keys and tab as well as a quick key. When using JAWS or NVDA, tab should also switch modes from reading to interaction. To capture this, some options could be:
From the perspective of running tests, I like option 3. I think it is most friendly for the tester. And, it might be more friendly for the test writer, depending on how we construct test writing. However, it does seem like it would be more complex to implement in the harness. From the perspective of harness simplicity, option 1 might be best. It will create more work for testers. However, at least the purpose of the duplicate work is very clear. Option 2 reduces the amount of work for testers but seems like it adds complexity when compared to option 1 without much benefit. Perhaps there are still more approaches worth considering. In any case, this affects our harness because the labels on buttons cannot be just about output. Capturing defects unrelated to assertionsAs described above, there can be a wide variety of things that go wrong that happen as a result of commands we are testing but are not described by saying one of our assertions failed. We have to capture these types of defects in our data because they can destroy screen reader interoperability even if some or all the output is correct. I think the easiest way to capture this is to change our shortcut radio options. Here is what they might look like for checkbox for the JAWS insert+up command:
Then in the results table, there is a row for each assertion as we have now with columns for Good Support, No Support, Incorrect Support. I do not think we need the additional tester notes field on each row. Naming the columns this way enables the assertions to be about behaviors other than spoken output. Although for some behaviors, good support and no support might be enough. Then below the table is another radio group named "Other failures" with two options:
|
Good finds, @mcking65. Some thoughts.
|
In today CG meeting we agreed with @mfairchild365 about having a list of failures. The list we have so far is:
@mcking65 can you tell me all the key commands for checkbox (as they currently exist in |
You can see an example of an additional assertion for the screen reading changing modes after "TAB" in read-checkbox.html test file now. |
@mfairchild365 wrote:
Yap, actually assertions need to all have a must, should, or nice to have categorization. That is part of our original plan. I've added that to my combobox testing plan. BTW, mode switching is not a blocker for people who know how to manually control mode. Unfortunately, that is not the typical user. So, for some people it can be a blocker when mode switches don't work right. |
@spectranaut wrote:
Here is how I would refine the wording and content of this list:
|
@spectranaut wrote:
Mode switching does not happen for checkboxes. However, it does for comboboxes, and I have included it in the test plan I am about to post. |
I have written 9 tests for combobox so far, but only in Excel. I will export each test to a separate CSV file, and export a command list in CSV format aswell and put it in the prototype branch in the combobox-autocomplete-both directory. I have no idea how many tests there will be for combobox. Perhaps in the neighborhood of 25, but it could be many more. Going through this process, I am realizing several things that we need to do beyond the prototype:
Now for changes to the harness and its inputs. Specifying to which AT a test appliesI added a field in the header of each test to specify which AT a test applies. For now, I createively called it, "Applies To". I imagine this field having values like:
Obviously, the above means that we need to be able to assign tags or categories to each supported assistive technology to identify the buckets into which they fall. Instructions based on modeIn some of the tests, I used different wording for the interaction mode instructions and the reading mode instructions. I think we need to be able to do this. Command ListenerIn the list of commands, I have 4 columns:
If the command is not related to the assistive technology, e.g., it is processed by the browser/web page, I specified the listener as the browser. Otherwise, it is a specific screen reader. Other refinementsI put navigate to the combobox and read the combobox into separate tests. This is because the reading commands are not navigation commands. In addition, I made separate commands for navigating with mode switching, because some navigation commands switch modes, and some do not. And, this can vary among screen readers. I think the specificity of our commands list is going to work to our advantage here. For now, this is all in the attached Excel. |
@spectranaut, Here are some things that we need to address in the harness. I will start with some easy stuff to clean up wording and make it easier to understand. It would help with accessibility to have a title tag in the tests., e.g.:
It feels like clutter to have an H1 with "ARIA-AT Test Runner". I am assuming this is a sort of substitute for branding to tell the user that this page is part of the aria-at project. I'm OK with leaving it for now if others think it is important. Otherwise, perhaps we nix it. I think we should have only 1 H1, and it should only include the name of the test. So, for instance, instead of:
Pull out the info about the test number and put it after the heading, e.g.:
I still find the "Testing behavior 1 of 1" or "Testing behavior 1 of 2" pretty confusing. This is a bit bigger issue to tackle, so saving that for later. The accessible name on the list of commands is "AT Controls". It should simply be "Commands". Sometimes those commands will not be AT commands. Under success criteria, Change the language: "For each command listed above, the following assertions are met:" That is more clear than "every possible command" and, I want to remove the word "must" because we will test more than must-have assertions. Change the label on the output edit box from:
to:
e.g.:
When I tab to those edit fields, I need to hear for which command the field pertains, and the word "Relevant" isn't really necessary. The first shortcut radio for success is currently named:
It incorrectly uses the word "meet" instead of "met". But, we can make the wording simpler by changing tense:
Similarly, change:
to:
Now, something very important for screen reader users who tab through the form, we need the radios in the table to include the assertion in the name, e.g., "Good Support for ASSERTION_TEXT" For the question: "Was there additional undesirable behavior?", we need a yes/no radio group, and then, if no, is chosen, present or enable the select. However, the select has to be multi-select. I don't know if html multi-selects are easily accessible. We'll need to test that out. And, finally, if "other" is selected, an additional edit field is necessary to catch a description of the other behavior. I am really confused by the buttons:
Skip and submit are easy to understand. I don't understand finish. And, re-do seems odd. Is that more like clear all answers? I noticed a couple of bugs.
|
@spectranaut, Per our discussion about labeling radios in the table, I labeled them in the first two rows of the table in this file table.html.txt. The two rows use two different ways of including the words "for assertion" in the middle of the label. Use which ever you prefer. The first relies on a class (off-screen) that I did not include in the markup. The second uses aria-label. Note that in both cases I moved the assertion ID from the |
I believe everything has been addressed and incorporate into the test design, so closing this issue! |
Hey ya'll!
Please provide feedback on the "displaying" of the following tests. To make it clear what text the test harness is providing and what is supplied via the API, I added
<em>
tags to all of the text that is specific to the tests (so provided by either the test author or anything AT specific).Here are three different "tests":
reading checkbox
operating checkbox
reading checkbox group
A few things to consider:
Soon to come:
The text was updated successfully, but these errors were encountered: