Closed joshkimux closed 3 years ago
@sporeboy @erikphansen this is a ticket that will require a conversation with the platform team
@Samara-Strauss This sticky menu is currently used anywhere there is a secondary nav on static content.
Got it. I've got this in our sprint plan to review in a couple sprints when we have more design bandwidth.
@andaleliz I'm adding this to next sprint in case you have time to work on it. It's not clear to me whether this has impact outside of the profile, so that will be something to look into. If this affects menus outside of the profile, we might have to bring in the site wide team.
It does affect the mobile nav trigger on the entire site. But it's potentially worse on Profile when the mobile nav is expanded.
This also happens anywhere the In This Section
menu is used on content pages - e.g. on the education How to Apply page (screenshot below). I think we need to bring in the site wide team.
When tabbing down through the page, the page jumps as needed so the focused element is in the viewport. I don't notice this issue of the sticky element covering the focused element when tabbing _down. But, this doesn't always happen going back up, which is where I see the focused element being hidden.
@erikphansen, thoughts on programmatically setting the distance of the focused element from the top of the viewport so that it'll always clear the height of the sticky menu? Probably an overly simplistic solution...
@andaleliz that was my initial thought as well. I think we'd have to add listeners on every single focusable-object on the page so that when they got focus we could scroll up a bit if needed. Which would work but also feels icky.
It might also be possible to essentially crop the main page content to a box that starts just below the sticky nav trigger. Which sounds harder to accomplish well but would make this problem go away.
We should definitely raise this to as many FE devs as possible. Someone might have an elegant solution for this. I'll also be on the lookout for solutions to this in the wild.
It would be awesome if we can find a non-hacky solution that doesn't require js to function, so I'd recommend we bring in design/content folks as well.
Is a sticky menu really necessary, or could we explore shortening the amount of content on pages? Do users really need fast access to the menu at all times, or could it just remain at the top and bottom of the pages?
We should examine other issues of stickiness as well beyond just compliance too. For zoomed in screens and mobile, a sticky menu takes up a significant portion of the screen. For users with low vision (think older Veterans on a mobile phone with large font), valuable information may be hidden by the sticky menu or they may be severely limited in terms of how much they can see at any given time.
We may want to consider more research on mobile in multiple, realistic contexts.
Edit: that additional floating feedback label isn't helping either 😬
@rtwell this thread might interest you!
@joshkimux — @andaleliz is a designer, so she's one of the right people to have on this!
Also, if this ends up being more of a larger, site wide issue, I suggest we bring in the site wide (public websites) team. Our team is really only responsible with how this functions in the profile, so we shouldn't be handling any larger questions around site content or cross-site design elements on our own.
I don't remember at this point what the reason was that we decided to make this a sticky menu instead of a menu that just hangs at the top of the page. @tressaellen can you provide more context here? Hoping your memory is better than mine.
I'm certainly open to being convinced otherwise, but I am firmly in the Pro Sticky Nav camp. But obviously it introduces issues. I hope we can figure out something that works for everyone. I don't have a major problem with solving this with JS. The JS it would take to solve it would likely have a tiny, tiny impact on performance and page load compared to React and some of the insane stuff that's happening in the form system. And that all works just fine even on old mobile phones. Also, FWIW, the menu button only gets "sticky" because of JS, so fixing the rough edges with JS doesn't seem objectionable.
@erikphansen yes I was a pretty hacky dev so makes perfect sense that my brain went there 😆 Definitely don't want to do something ugly/hacky/non-performant. Good call to raise to other devs - what is the best way to do that? I'm not sure where all this is being used on the site, other than on the content pages.
Is our profile menu the same component as the in this section
menu? Either way, this definitely has larger, site wide implications. Something I don't think our team is responsible for solving alone, at all.
@joshkimux
that additional floating feedback label isn't helping either
That should go away once we shift from ForeSee to Medilla. I thought that was slated for earlier this year but must've been pushed back some. It's on the way out though, afaik.
Do users really need fast access to the menu at all times, or could it just remain at the top and bottom of the pages?
I haven't brushed up on the research around these design decisions, but I'm sure Tressa will chime in. If so, using the back to top component instead is a possible non-hacky solution.
@Samara-Strauss As discussed with the team and Ryan, we've decided to remove stickiness from this page! @erikphansen will be replicating the menu on Pittsburgh Health Care.
I love when stuff gets solved and I didn't even need to be part of this conversations 😂
@erikphansen @tressaellen @andaleliz you all good with this? You may have been part of the original convo, but just making sure in case you weren't.
@joshkimux just wanted to confirm that I'll use this ticket to fix the Profile nav. Fixing the global nav is different code, but also a whole lot easier. Probably one point of work to just disable the stickiness.
I can remove @andaleliz from this ticket and make this the FE implementation ticket.
@erikphansen Yes, let's go ahead and do that! Thank you
@brianalloyd pinging you for awareness since the hub pages that include In this section
sticky menus have a similar issue
hi all I'm a little late to this, but as I recall, Ryan designed this and didn't really have a strong opinion on whether the menu was sticky or not. Then Erik asked me "hey, should this be sticky?" and I was like "I don't know let's ask Ryan" and Ryan was like "sure." So it wasn't like a very strongly thought through decision. That said, if we're making it not sticky on profile then yes it shouldn't be sticky on any of the benefits content pages so let's make sure someone makes that update.
@sshein No worries! All the folks you mentioned were on the call when we made the decision to unsticky it again 🥳
To be clear, the offending button has always been sticky. Pittsburgh was the trailblazer in having a non-sticky mobile nav menu trigger.
Fun/sad fact: I did some searching to see how other major sites dealt with this sticky-nav-hiding-focus issue. I got very excited to see that Deque's site uses a sticky nav! But sadly they punted on solving this exact same issue :(
I think one of @sshein's concerns is that this gets fixed everywhere, not just in the profile. We talked about our team being the one to test to see how it performs as not sticky, but then I think we decided we didn't need to since this is already on the VAMC pages. Giving it more thought, I don't think this was actually tested. Posted a slack message to verify.
Update: as far as Ryan knows this has not been validated with users.
Do we need to do some usability testing with this before it's changed globally? I personally would feel better validating that the back to top
works for people and we're not introducing new pain points by making them scroll back up to get to the profile nav.
If we don't think testing is necessary - shall we create a separate ticket for the public websites team? I'm not sure the best way to make sure this gets done everywhere.
@andaleliz Gotcha, that makes sense! If we were to test, we'd need to make sure that we're recruiting our participants strategically e.g. specifically requesting Veterans that view this on mobile or who are primarily keyboard users. Otherwise, we may unintentionally map desktop/ablelist findings to all Veterans.
If we don't think testing is necessary, I think a separate ticket would be the right way to go!
As far as anyone knows this hasn't been tested with users, so I think it would be a good idea to get some feedback on this change before we recommend a sitewide change. I don't know that we need a dedicated study just for this change though. Couple of options:
As far as anyone knows this hasn't been tested with users, so I think it would be a good idea to get some feedback on this change before we recommend a sitewide change.
Does this change anything with the plan to un-sticky the nav in the profile before making larger site wide changes? I have un-sticking the nav down as a task for Erik for next sprint, so if we want to hold off and do some testing, then I can move that accordingly.
This ticket only pertains to the Profile. The site-wide nav is totally different code
@joshkimux just making sure that if this ticket is meant for the profile only, you have the larger site wide issue tracked in another issue. I don't want to close this out and then lose the discussion on the sticky nav site-wide.
I can probably un-stick the Profile menu behind a feature flag so that we can test this with users in Prod without actually releasing the change to all users.
Sounds good. I can keep it on for next sprint, then, and we can always do additional testing if we determine that's needed.
I'll need someone w/ more tenure on the team to verify this, but I believe all that's been influenced by testing in the current implementation is the visual design. When it was all blue w/ white text, no one saw it, so we changed it to what we have today because that's what was in place with VAMC.
If that's true, and we aren't un-doing something that came out of testing by removing the stickiness, I think we can make the changes in our profile and not change our plans. Not-sticky is equally valid as sticky at that point.
However, I think:
I know it's not technically the auth exp team's responsibility to validate sitewide changes, but we're in a position to help here given that we're making the change first.
Also, just saw Samara's comment:
@joshkimux just making sure that if this ticket is meant for the profile only, you have the larger site wide issue tracked in another issue. I don't want to close this out and then lose the discussion on the sticky nav site-wide.
I was not able to find any other tickets discussing this issue.
If that's true, and we aren't un-doing something that came out of testing by removing the stickiness, I think we can make the changes in our profile and not change our plans. Not-sticky is equally valid as sticky at that point.
Sounds good to me. TBH, I am not sure what testing has or has not been done on this element.
In terms of moving things forward, here is what I am understanding as of now:
Am I following along accurately at this point? Anything I missed?
@Samara-Strauss that's accurate. I do think it's important that this change gets made sitewide if it proves to be a good one, but I don't feel good making recommendations changes across the site that have not been validated.
It sounds like the facilities team has some research coming up in Q2 looking at navigation on the VAMC pages, so they may be able to have this looked at in their study before we can get to it. I will also mention this as a research opportunity to the new public websites team researcher.
It sounds like the facilities team has some research coming up in Q2 looking at navigation on the VAMC pages, so they may be able to have this looked at in their study before we can get to it. I will also mention this as a research opportunity to the new public websites team researcher.
This sounds great! Thanks, Liz!
@andaleliz @Samara-Strauss @ajakabcin I was about to push up a PR for this change, and then realized I said I was gonna put this behind a feature flag so that we could test it with users before pushing it out to all users in prod. Did you still want to hide this change behind a feature flag so that we can control the rollout?
I thought we said we didn't need to do additional testing on this for the profile specifically, though whoever is managing larger sitewide changes should consider testing. Is that accurate, @andaleliz?
Yes, that's mostly accurate - we said we would release w/out testing, since this is how it works on VAMC and neither VAMC OR the sticky profile were ever tested with people (so we're not explicitly going against any data). I think we have to do this ASAP anyway, as the defect-2
issues are supposed to be resolved within a month and we're overdue on this.
I'm hopeful we can add a research question to validate this in our next study (likely May), which would probably happen before the sitewide team gets to it.
@erikphansen sounds like you don't need to launch behind a feature flags, but thanks for checking in on that!
Merged! The un-sticky Profile menu will be on staging later today for validation by... @ajakabcin I guess? @joshkimux might also want to take a took.
Yep! And @andaleliz can also validate.
Took a look at this and confirmed that the profile menu is no longer hiding focus 🎉
I think we're good to go, but have a couple of other thoughts to share:
@andaleliz You beat me to it! Closing this ticket now as it's been resolved 🥳 Thank you @erikphansen !!! 🎆
Something that I totally neglected earlier (or perhaps it has changed) is that I don't see the back to top component in profile. We factored that into our decision to go this direction since it would still provide users easy access to the profile menu; I assumed that was already part of profile and never consciously double checked that. If we need to manually add this to profile, we can explore that separately. I don't think the fact that this is missing should block us from rolling out this update. We have never validated that users struggled to get to the top of a page or that the stickiness was helpful in the first place.
Agree on all accounts. @andaleliz do you want to add exploring this to the running list of things you want to assess in profile research at some point?
@Samara-Strauss it's already in the doc, but phrased in a way that assumed the back to top button is already there. I'll clarify. Good idea to update it!
it's already in the doc
Great! Tbh, I totally did not check the doc before commenting. Glad to hear it's already there.
508-defect-2
Feedback framework
Definition of done
Point of Contact
VFS Point of Contact: Josh
User Story or Problem Statement
As a keyboard user using magnification or on a smaller viewport, I always want to be able to see and track focus so I can navigate and interact with the page.
Details
At smaller viewports or when magnified, the profile menu will become sticky on the page. This results in it occasionally covering focusable elements. Keyboard users who rely on visible focus to interact with the page will struggle to do so as shown in research done by the gov.uk team.
I believe this also exists on public websites, so I have marked this as a sitewide ticket. @caw310, @1Copenut , & @rtwell , this may be worth your review. This issue is a sibling to 19784.
Acceptance Criteria
Environment
Steps to Recreate
https://staging.va.gov/profile
in browserProposed Solution
Stickiness is OK provided it does not cover focusable elements. If a design solution can be found where the menu does not overlap with focusable items on the page, then the ticket can be closed.
Otherwise, it may be simpler to remove stickiness and allow it to remain relatively positioned at the top. To provide an equivalent experience to stickiness, designers could consider:
WCAG or Vendor Guidance (optional)
Screenshots or Trace Logs
https://user-images.githubusercontent.com/14154792/107564618-a44f2b00-6bb0-11eb-8b7d-dc926ff98d17.mov
https://user-images.githubusercontent.com/14154792/107564656-b16c1a00-6bb0-11eb-91da-f13527a58ac2.mov