phetsims / molarity

"Molarity" is an educational simulation in HTML5, by PhET Interactive Simulations.
http://phet.colorado.edu/en/simulation/molarity
GNU General Public License v3.0
2 stars 6 forks source link

Screen reader does not give alert for molarity when saturated #154

Closed KatieWoe closed 4 years ago

KatieWoe commented 5 years ago

For https://github.com/phetsims/QA/issues/436 Noted on Win 10 Firefox NVDA. When the concentration changes before saturation, an alert gives the new concentration. However, there does not seem to be an alert for what the saturated molarity is. This means the user may not be aware of that max number without going back to the scene description. It can be an even bigger issue if you switch into a mixture and it is already saturated, as no number would be read then.

KatieWoe commented 5 years ago

Never mind, it is read out at first, but it could be missed, and the first situation still applies.

twant commented 5 years ago

@emily-phet, @Matthew-phet, and @terracoda, I seem to remember that it was a design choice to not read out the maximum concentration number for any of the solutes. Is this correct, or should I begin investigating ways to read out the maximum concentration number with the saturation alerts?

terracoda commented 5 years ago

@Matthew-phet. @emily-phet , we do have some nuance around the saturation point.

And I think we discussed (more than once) if max concentration is the same as saturated or not. The sim, however, only says "Saturated" once at least one solid appears which is "beyond max concentration."

@KatieWoe is correct that is difficult to get the value for the "saturation point" from the alerts. I think we have designed "max concentration" (2.250 molar in this case) as the saturation point, but the solution is not described as saturated here. The solution has to go "beyond max concentration" to be described as "saturated".

In the qualitative view, the molars are not provided after saturation point (2.250 molar), and this we should consider doing - see examples 3 and 4.

Doing this makes sure students can get the saturation point and know that concentration does not change after saturation.

not-sat-at-saturation-point

Screen Shot 2019-10-19 at 3 24 43 PM

Screen Shot 2019-10-19 at 3 33 25 PM

Screen Shot 2019-10-19 at 4 20 20 PM

Assigning to @Matthew-phet and @emily-phet for review.

terracoda commented 5 years ago

I think we should we should add the value only on the Solution Values checked mode.

Matthew-Moore240 commented 5 years ago

Yeah I think this is a good idea!

terracoda commented 5 years ago

Ok, excellent. Another option for the alert in Solution Values check mode is to replace "Beyond max concentration" parameter with the actual concentration in molar. For example:

In addition, we need to test this addition with the darker and lighter strings in https://github.com/phetsims/molarity/issues/160

Also, I want to clarify what I meant by "nuance around the saturation point" which I mentioned in https://github.com/phetsims/molarity/issues/154#issuecomment-544188301

Nuance around saturation/max concentration The nuance is that sometimes the visual says "Saturated!" and shows a precipitate in the beaker right at the max molar value (max concentration), and sometimes it reaches the max molar value (max concentration) just before it says "Saturated!" and before the beaker shows a piece of precipitate. To me this means there a saturation point (max molar/concentration value) where the solution is technically in a stable saturated state where no more solute can fit in the solution, but no precipitate has been pushed out yet.

This nuance exists in all three modes (visual, sound, text), and is difficult to account for in both exact and approximate terms (Solution Values checked and not checked). For example, we may need to adjust the responses right around the saturation points for the different solution when teh solution "No longer saturated. ".

terracoda commented 5 years ago

@twant, either I or @Matthew-phet will get to this asap, apologies for the delay.

terracoda commented 5 years ago

@terracoda or @Matthew-phet to need list out 3-5:

terracoda commented 5 years ago

Q=Ksp

terracoda commented 5 years ago

We discussed this issue on Tuesday. Max concentration is the same as saturation.

terracoda commented 5 years ago

The case mentioned above no longer exists. @terracoda to re test in morning.

@Matthew-phet discussed solutions.

terracoda commented 5 years ago

This screen shot is from https://phet-dev.colorado.edu/html/molarity/1.5.0-dev.26/phet/molarity_a11y_view.html

I can still get "no longer saturated" and "max concentration" or "2.2.50 molar", so I feel we still have an issue for the descriptions. issue-154-saturation-point

I'm working on string for this issue and #160 in the design doc.

terracoda commented 5 years ago

@terracoda and @Matthew-phet will clean up examples in design doc before Wednesday.

terracoda commented 5 years ago

@twant everything is updated in the design document.

Please see Context Response section, and for a brief view of the Solute Amount alerts, there is a table that summarizes things here: Table: Values describing Shade

The table is not an exhaustive list of responses, but the listed examples in the walk-throughs are very complete. Focus on the yellow highlighted stuff and red text.

twant commented 5 years ago

@terracoda @Matthew-phet I believe I've implemented what you described in the design doc. I had a few questions:

  1. The solute changed alerts still have "beyond max concentration" descriptions when you've chosen a solute that is saturated. The alert is something like "Orange solution, saturated with a couple of solids, beyond max concentration". Do you want to change that language as well?

  2. If I'm going from saturated to unsaturated and I go through that very specific range where there are no solutes but the solution is at max concentration, the sequence of alerts is:

In this implementation, it will skip the alert that says "no longer saturated." Do you think this is okay? When it doesn't go through the "At max concentration. Solution darkest" alert, the sequence is:

terracoda commented 5 years ago

@twant, good catch on number 1. When Solutions are saturated should be: Solution Values not checked:

Solution Values checked:

When newly chosen solution is not saturated (ADDED: already implemented and working): Solution Values not checked:

Solution Values checked:

Adding: no mention of lighter or darker on choosing a new solute.

terracoda commented 5 years ago

@twant for number 2, the logic needs to check for the first response describes after max concentration or the first response after there is no longer any solids present and include “No longer saturated” the first time “lighter” appears.

Two cases:

  1. First response after “At max concentration” or At {{maxMolarValue}}
  2. If “max concentration” not hit, then first response after solids are no longer present.

    Solution Values checked:

    • {{No longer saturated}} at {{2.249}} molar. Solution {{lighter}}.

Solution Values not checked:

terracoda commented 5 years ago

@Matthew-phet, what are your thoughts on this matter? Can you also address @twant 's questions in https://github.com/phetsims/molarity/issues/154#issuecomment-552276786

twant commented 5 years ago

@terracoda this does make sense. My main question is that in the model, "at max concentration" occurs when the sim does not label the solution "saturated". So, it seems strange to have the "no longer saturated" alert happen after the max concentration alert, when technically (according to the visuals on the screen and the model) it was already not saturated at max concentration.

terracoda commented 5 years ago

Right, you are correct. The new design is supposed to account for this case. The phrase should never include "No longer saturated" if the step lands directly on max concentration.

But then on the next step where solids are not present (i.e., the first appearance of "lighter"), the phrase should say "No longer saturation".

terracoda commented 5 years ago

@twant, is there a gap in the model? What is the model capable of?

Matthew-Moore240 commented 5 years ago

For @twant first question @terracoda solution/answer looks good to me. As for question two i am not quite sure what the problem is @terracoda answer here makes sense to me unless there is something i'm missing

Right, you are correct. The new design is supposed to account for this case. The phrase should never include "No longer saturated" if the step lands directly on max concentration.

But then on the next step where solids are not present (i.e., the first appearance of "lighter"), the phrase should say "No longer saturated". (corrected typo)

twant commented 5 years ago

@terracoda @Matthew-phet I think I see what you're saying, and I don't think there's a gap in the model. It's just that when we're thinking of a binary "saturated" or "not saturated" set of states, the "At max concentration" is counted as "not saturated". But I think it makes sense to implement as you're saying, if we're no longer thinking of this as a binary, and are instead thinking of "max concentration with no solids" as a third type of state.

terracoda commented 5 years ago

@twant, yes, we need a third state because the visual design does not account for the fact that the sim can be technically saturated at max concentration when no precipitate showing. If we don't want to change the visual simulation, then we need this third state that says "At max concentration. Solution darkest."

It's the best I could come up with without saying "saturated".

twant commented 5 years ago

@terracoda that makes sense, and apologies for the confusion -- I know you explained this to me on the phone! I'll work on implementing the "no longer saturated" alert to come right after "at max concentration" if we do hit that alert precisely.

terracoda commented 5 years ago

Awesome! And no need to apologize :-)

terracoda commented 5 years ago

@twant, maybe it is possible to think of the three states as:

I am hoping that is what users will deduce from the descriptions.

twant commented 5 years ago

Still need to implement:

terracoda commented 5 years ago

@twant, @Matthew-phet and I had a quick chat this morning. The table with Shades is all updated for Solute Amount and Solution Volume and for all the situations with Solution Values not checked and Solution Values checked.

All green text is implemented and working. The black text responses is what is currently showing in ally view. The red text with yellow highlights is what we would like implemented.

You are correct that is is the Solution Values checked mode that needs to be implemented.

Thanks for all your hard work.

twant commented 5 years ago

@terracoda @Matthew-phet I just pushed changes that I think address all of the changes (including the updates to the alerts when the solute is changed). Let me know what you think!

terracoda commented 5 years ago

@twant, awesome work! I verified all the responses in the table! I think we can close this issue! Hip. Hip. Horaay!

twant commented 5 years ago

@terracoda @Matthew-phet, after discussing with @zepumph, we think this issue should be re-opened and addressed within the model in addition to the accessibility descriptions. This is because our descriptions currently identify three regions (not saturated, max concentration with no solids, and saturated with solids), but the model still only identifies two regions (saturated and not saturated). Although the need for three regions arose from accessibility instrumentation, we think the model should be supporting this instrumentation for consistency. It seems like there are two options:

I think I'm in favor of the first option, because my understanding of saturation is that it depends on concentration, not on precipitate amount (and the current model implementation, along with the second option, determines saturation based on precipitate amount).

Steps for this issue:

  1. Decide if this is blocking Molarity publication
  2. Decide if/how to address the discrepancy between model and descriptions

@emily-phet, would love to get your thoughts on this. Assigning over to you for input & prioritization.

terracoda commented 4 years ago

@twant and @zepumph, I agree that the sim model and the description model should match. In retrospect this monster issue is because of this mismatch :-) I voiced my suspicions in https://github.com/phetsims/molarity/issues/154#issuecomment-552487719.

The descriptions are designed with the three states, so they should easily accommodate either design path.

And if it is decided by that the visual "Saturated" label is to appear at max concentration (i.e. just before precipitates show up), we will need to slightly adjust the phrasing so that "Saturated" appears in the described experience, and we would likely be able to simplify the logic for the appearance of "No longer saturated".

@emily-phet, in addition to 1 & 2 above in https://github.com/phetsims/molarity/issues/154#issuecomment-561416932, maybe we can squeeze out a small slot in a design meeting very soon?

emily-phet commented 4 years ago

@terracoda @twant @Matthew-phet @zepumph

I think the first option in this comment should be avoided. It involves a significant change to the pedagogy designed into the current sim, which teachers have now been using for years. I'm sure many people have a standard response to why the "saturated" indicator appears at the same point as the first particle...it's the first time at which (from the learners perspective) you can tell that the solution can 'hold no more' solute. Changing that is not insignificant from the perspective of teaching the concepts.

I think we need to proceed with option 2,

Add a third "max concentration" state for the model to be aware of, in addition to "saturated" or "unsaturated". This is consistent with this comment: #154 (comment)

In the future, challenges such as this can be avoided by having a fully integrated team from the start to finish when developing a sim...but in the meantime we must do the best we can while 'retro-fitting' sims.

terracoda commented 4 years ago

@emily-phet, thanks for verifying the pathyway for updating the model. @twant also asked if this a blocking issue?

I am pretty certain no changes to the current description design is needed by following option 2.

@twant, could you comment on two things:

  1. How much time you think you will need to update the model to accommodate the third state - the equilibrium state (max concentration)?
  2. To update the model, do you need the assistance of the responsible developer?

That information might help in deciding whether this is a blocking issue or not.

twant commented 4 years ago

Thanks for these answers, @emily-phet!

In answer to your questions, @terracoda, with this added in, I think it will take a couple of weeks to work through all of the items that have come out of code review. @zepumph has been super helpful with this process so far, and as he is the responsible developer, I imagine it would make sense for us to use some of our next meeting time to work through this issue! @zepumph does that work for you?

zepumph commented 4 years ago

Yes that sounds great, let's talk more about this tomorrow during our meeting. Marking for it.

zepumph commented 4 years ago

Excellent! We will carry on with this over in https://github.com/phetsims/molarity/issues/196