-
Notifications
You must be signed in to change notification settings - Fork 42
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
feat(web): move installation issues to a drawer and keep Install button always visible #1778
base: master
Are you sure you want to change the base?
Conversation
But disabled when the installation is not possible because of settings issues.
Avoiding to use the term "issues" in the title because it isn't an accurate term. "Preflight checks" has been used instead.
To avoid "stacking contexts" problems which avoid sticky page sections behave as expected. Such a workaround will be not needed when migrating to latest versions of PF6, since the problem has been addressed by droping the DrawerContentBody from the Page component, see patternfly/patternfly#7130 and related links See also https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_positioned_layout/Understanding_z-index/Stacking_context
Replaced by IssuesDrawer and IssuesDrawerToggle.
Instead of doing it dinamically since the IssuesDrawer already have logic for rendering nothing when needed. This approach helps to avoid having calls to a query when the QueryClient has not been set yet, like at login screen.
Which was also causing stacking problems at the selection product page.
Because it provides a benefit to the user both visually and cognitively, as they don't have to figure out why the install button was disabled, nor be told where to find the reasons for it.
a125c5c
to
619ba5b
Compare
// TRANSLATORS: The install button label | ||
const buttonText = _("Install"); | ||
// TRANSLATORS: Accessible text included with the install button when there are issues | ||
const withIssuesAriaLabel = _("Not possible with current setup. Click to know more."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewers, note that this is part of the install button. Thus, an screen reader will announce "Install not possible with...". Please, have the screen reader in mind when proposing improvements.
Kooha-2024-11-25-08-23-04.webm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW, I'd like to explore moving it to an aria-description or so, but still having to learn a bit more about the screen reader interaction.
|
||
return ( | ||
<NotificationDrawer ref={ref}> | ||
<NotificationDrawerHeader title={_("Preflight checks")} onClose={onClose} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewers, please note the use of "Preflight checks" to avoid the "Issues" technicality. A first attempt was to use "Installation issues", but these are not actually "Installation issues" since the installation does not even started. It is more an "Installation settings issues", but sounds difficult to explain. Looks like "Preflight checks" could be a more self-explanatory term. As usual, better ideas are more than welcome.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Preflight checks" means something to me since I used flight sims a lot 1995-2005, but I am not sure if a normal user can make sense of this; much less one with limited English knowledge.
I don't even dare to think about translations and how much they make sense to users.
Please let's not get overly creative with this; keep it simple.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is your proposal?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about "consistency checks"?
Try to avoid lingo from a completely different area of technology like aviation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about the word "consistency". Sounds weird to me in this context. We could go for "Installation checks" or "Settings checks", but both are too generic IMHO
{_( | ||
"Current installation settings does not meet the necessary requirements for installing the selected product. Click on each section name to access the relevant page and adjust the settings as needed.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewers, feel free to improve this text as much as you want. But please resist the temptation to remove it. UI explanations are an aid, not a problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regardless of the wording, please fix the broken English:
"Current installation settings don't meet the necessary requirements..."
("settings": Plural -> s/"does not"/"do not"/ which nobody ever says (or writes outside of legal documents), so "don't")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about something along the lines of
"You need to make some decisions about some of the settings.
Click on each section name to check and maybe change the setting."
- Don't make it sound like it's a problem of the installer; it's not.
- Address the user directly to clarify that it needs user interaction.
- Keep it simple. Keep not-so-fluent English speakers in mind.
- Don't fall into the "let's resort to legalese BS" trap:
First of all, the message needs to be easy to understand, not so much to cover all eventualities.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"You need to make some decisions about some of the settings.
Click on each section name to check and maybe change the setting."
I like some bits of your proposal, specially these that helps to simplify the text but keeping all the information the user need to understand that some actions still necessary, thanks!
What about
Before install, you still having to take some decisions about some of the settings. Click on each section name to provide required setting
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As you said above, I'd like keep some consistency between the user action and the message shown. I mean,
User clicks on "Install"
The installer shows something that does not install
But the installer also tell the user "Before install, X"
So, user can be sure that this dialog has been for sure shown because as a side effect of clicking on the Install action, not an unexpected message.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Before install" is broken English. It's either "Before installing" or "Before the installation" (or maybe "Before starting the installation". Also, it's "make decisions", not "take decisions".
But your last proposal is much better than the initial text.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Before install" is broken English. It's either "Before installing"
I mean "Before installing", of course. I do not don't want to break English more that it is already :P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks much better now! I have a few suggestions about the wording.
Co-authored-by: Imobach González Sosa <[email protected]>
Pull Request Test Coverage Report for Build 12026002261Details
💛 - Coveralls |
Problem
A month ago , the 'Install' button achieved more visibility after being moved to the sticky header, allowing users to access it from any page/section/screen.
But that was just an intermediate step towards improving the 'Install' action and the discoverability of 'Installation setup problems,' which sadly introduced some drawbacks:
Solution
A discarded alternative
At commit 6ecdceb, this set of changes was in a bit different shape, where the interface rendered a disabled "Install" button and an enabled "Warning" button to display the setup problems. Additionally, it featured a tooltip to explain to users why the "Install" button was disabled and where to click to view the reasons in detail.
Click to show/hide a few screenshots
However, this approach created unnecessary complexity and moving pieces, not to mention the challenge of writing a clear, concise, yet complete explanation for the tooltip and keeping it up-to-date, including translations
What's more, there is no reason to avoid keeping the "Install" button always active but behaving slightly different depending on the setup status:
This way, the user doesn't need to think. They can simply click the "Install" button. If it's not possible, they can immediately start fixing their setup. If it is possible, they just have to confirm they want to begin the installation.
Testing
Note for reviewers
Please, do a manual test too.
Screenshots
Valid installation setup
Not valid installation setup
Related to not yet planned Trello card, https://trello.com/c/DmUOQN1Y (internal link)