Problem/Motivation
The bulk operation form takes space on top of the form and in some cases pushes the content of the view below the fold, meaning that to see any content on the page, the user has to scroll (see #2 for a screenshot). Presumably in most cases the bulk operation form is not being utilized most of the time users access a view. However, this could be the opposite for some views such as moderate comments view.
The connection between checkboxes and the bulk operation form could be also unclear. The checkboxes don't have any label and the bulk operation form is lacking a legend.
Proposed resolution
Move the bulk operation form below the view content. After a user has clicked a checkbox, make the bulk operations form position fixed. After user has clicked a checkbox the bulk operations form becomes the primary actions on the page and there's a strong reason to believe that the user wants to trigger an action. This will also add some clarity on the connection to checkboxes, as well as make it easier to activate an action.
An animated example to show the interaction behavior is linked to in #6
Designs can be found here: https://www.figma.com/file/NpZUAp8BEkMJvm5gKBCDBB/Claro?node-id=16591%3A...
Remaining tasks
Before full implementation, there are several things that must be figured out that aren't covered by the design.
- Consider how the implementation will impact the Views Bulk Operations contrib module. This redesign may require VBO to make some changes, but ideally these changes should not require anything too convoluted.
- Are there tab order concerns since this is sticky?
After the above considerations are figured out, determine if any changes to the design are needed.
Implement the design.

| Comment | File | Size | Author |
|---|---|---|---|
| #96 | edge.jpg | 115.07 KB | rkoller |
| #93 | button-text.png | 56.36 KB | mherchel |
| #93 | forced colors.png | 64.81 KB | mherchel |
| #93 | rtl.png | 128.16 KB | mherchel |
| #93 | sarfari narrow.png | 42.95 KB | mherchel |
Issue fork drupal-3070558
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
huzookaTo prevent to loose the bulk operations related code we removed in #3055598: Exposed filters eat up too much vertical space on admin/content view, I upload the removed bulk operations stuff.
We will have a redesign for the bulk operations, that's why I leave this issue 'Active'.
Screenshot about what this patch does:
Comment #3
ckrinaPostponing this until the design is done.
Comment #4
huzookaComment #5
ckrinaComment #6
saschaeggiAlright will paste this exploration for the Gin Admin Theme here for the Bulk operations: https://dribbble.com/shots/10769244-Gin-FutureUI-Actions-Multi-select-co... as an example (like discussed in today's Admin UI call).
Comment #7
bnjmnmComment #8
bnjmnmComment #9
kostyashupenkoComment #10
bnjmnm(I unassigned @kostyashupenko as the assignment occurred while I was in the process of uploading this patch... I hope there isn't too much confusion or duplicated work)
This is very much a first patch. Not all the styling is present yet. The primary intent here is to implement just enough functionality of the redesign to ensure it can be done accessibly, and that it supports views bulk operations.
For accessibility, the screenreader announces when the bulk operations becomes available to operate on selections (this coincides with when it becomes sticky)

Also, users of keyboard navigation will find an option on each row that allows them to skip down to bulk operations. (maybe this should only be available on selected items?)
The minimal styling added was to get standard and VBO looking OK and seems to work... However there may be VBO options that add more form elements?
Standard:

'
Views Bulk Operations:
Setting to "needs review" because it could use feedback on the accessibility implementations and the sticky behavior. The code and styling are NOT complete and it has only been tested in Chrome and Safari. It would be nice to get some +1 on A11Y+sticky+overall approach before devoting too much time to the details.
Comment #11
kostyashupenko@bnjmnm - you don't need to hope, just assign a task. How could i know if you were on it ?
Comment #12
kostyashupenkoAnyway, good work from quick overview.
I would suggest the following:
1. Make label inline with select, and make select with
form-element--extrasmallmodifier. Same for submit -button--extrasmall2. Increase z-index of sticky part


3.
position: sticky;is not working for IE. If we don't care about sticky bulk part for IE - then no need to animate it+ animation: fadeInBottom 320ms 1 forwards;I bet you can use
@supports (position: sticky) {for itComment #13
bnjmnmComment #14
bnjmnmThis refines the approach in #10 and brings back in most of #2 for attribute and region addition.
I also opted for the graceful degradation approach to
position: sticky;. In IE11, which does not support this, it usesposition: fixed;instead. It's completely fine, just not quite as pleasant as the sticky version.Tagging "Needs accessibility review". The addition of skip-to links, Drupal.announce() behavior when checking/unchecking items, and aria additions warrants some expertise.
Comment #15
lauriiiInstead of moving header to the bottom, should we rename the container? This way if there's something else in the header container, it won't be moved below the form.
Let's set
#button_typeas 'primary' and then manually set thebutton--smallclass.We should probably add a more consistent checking for the checkboxes because there could be checkboxes not related to bulk operations. At the moment this counts the deselect all checkbox too.
Comment #16
bnjmnmAt the weekly Claro check in, we identified a potential need for mobile designs. There was a suggestion to make the form items stack on narrower widths, so that is a possible option.
Comment #17
bnjmnmThis addresses all the points in #15, including the addition of tests. Some additional changes
Medium (only the label is repositioned)
Narrow (everything stacks)
Comment #18
nod_Comment #19
lauriiiI discussed this with @rainbreaw earlier this week and she raised a concern that it's difficult to notice the drawer being opened. She recommended that we would try a darker background color which would make it more distinguishable.
I discussed the feedback from @rainbreaw on the Claro meeting today. We agree that we would try if one of the alternative designs created as part of the design phase would address this. We decided first to try to implement the dark background from this variation:
The designs can be found on Figma: https://www.figma.com/file/NpZUAp8BEkMJvm5gKBCDBB/Claro?node-id=16505%3A...
Comment #20
bnjmnmThis implements the designs mentioned in #19. Other changes:
Comment #21
bnjmnmIGNORE THE PATCHES ON THIS COMMENT. They were posted to the wrong issue (I have too many tabs open)
Comment #23
bnjmnmRe-posting patches from #20 so the most recent patches are not ones I mistakenly posted to the wrong issue.
Comment #25
bnjmnmComment #26
katherinedI did a quick test to see how this works with Media Library.
1. The dark tray background looks great! It's a significant improvement, IMO.
2. The patch works as expected in the Media Library table view, but not in the grid view. The tray does not appear when items are selected, and the element is not full-width.
Table:
Grid:
Comment #27
katherinedComment #28
saschaeggiBtw. how's the contrast between the button and the background now with the dark bg?
Comment #29
bnjmnmThis patch addresses #26
Re #28: The contrast of the button background is not enough to meet any text on background standard, but apparently the standard for button backgrounds are different, something that was figured out in this issue/comment: #3023311: Modal dialog style update. So while a change isn't necessary, if there is a higher contrast color choice that works well with the overall design system, it could provide a nicer experience for low vision users.
Comment #30
lauriiiFor some reason, the tray does not appear when items are selected on the media library grid with #29
I also noticed that the hover effect doesn't look nice when there's a dark background behind form elements. I don't think this is necessarily something that has to block this issue since hover effects are not a hard requirement, but it would be nice to at least try to address this in a follow-up issue.
Comment #31
andypostAdded previous issues
#2721807: Design for filters and bulk operations already has a lot of mentions and related issues linked
Comment #32
andrewmacpherson commentedI have a bunch of concerns about the proposal.
Chatted with @lauriii, @bnjmnm, and @rainbreaw on Slack today. Here's the chat, and I'll expand on it afterwards.
The sticky position of the bulk operations causes some problems for at least two groups of users. In both cases it's because content is obscured.
focusinlistener, but this won't solve the problems for speech control users.Overall, I'm worried that this creates a UI which reduces scrolling effort needed by pointer users, at the considerable expense of making things more laborious for keyboard and speech control users.
It's a problem for those too, just in the other direction. There's another issue open for the toolbar; another problem there is that operating the
#main-contentlink moves the start of the main content underneath the fixed toolbar. Again, this is mitigated by an awkward manual scrolling step.Comment #33
lauriiiUpdated the issue summary with some more background on what motivated the changes
Comment #34
bnjmnmWe talked to @rain about how to address the speech control issue detailed in #32. She suggested providing a toggle to disable sticky headers. I've provided a patch for this in a separate issue, #3163765: Add option to un-sticky table headers to benefit assistive tech users so it can be reviewed and determined if it's an acceptable approach.
Comment #35
bnjmnmThis patch removes the skip-to links and significantly reduces jQuery use - partially achieved by adding two polyfills. All remaining jQuery does not have vanilla equivalents yet (once, :tabbable, and the event implementation)
This patch also attempts to address the accessibility concerns in #32. If focusable elements are underneath the sticky, they are set to
display: none;, See display-none-if-under-sticky.gif for an example. The sticky header is at half opacity so it can be seen how the elements are hidden/shown.If a focusable element is partially under the sticky and it receives focus, the window scrolls so the element is fully visible in the viewport. This is to match the behavior that occurs when an element partially out-of-viewport receives focus. See scroll-focused-elements-into-full-view.gif for an example.
If this approach appears sound, I would create a followup to apply a similar treatment to sticky table headers.
Gifs not embedded as they're large enough that I don't want to insist they load with the page.
Comment #37
bnjmnmNeeded to update tests to reflect the changes in #35
Comment #38
lauriiiSome feedback:
When scrolling down, the hidden elements remain hidden for a while so that it's visible for users.
Comment #39
bnjmnm#38.1
I set debounce to a lower value and added a .5s opacity transition. The visibility is also now applied to the entire row to facilitate item #2. Between these two changes the un-hiding of items feels pretty smooth. Even when it doesn't feel immediate, the behavior isn't likely to be jarring as it resembles an infinite scroll.
#38.2
This was changed to visiblity: hidden so it could be applied to the table row and not alter it's height, but that doesn't directly address the concern here. This was addressed by adding an handler on the blur event. If blur occurs in a table row preceding a row with visiblity: hidden, it is momentarily unhidden to accept focus. As soon as a new element receives focus rows underneath the sticky are re-hidden.
I'll need to update to Catalina before I can test this manually. There's a very specific edge case with this solution that should be checked. This edge case would happen if:
In the above circumstance, it is possible that the numbers for items underneath the sticky would be visible for the very brief moment between blur and the next item being focused. Were this the case, I think there are arguments to be made that this is an acceptable tradeoff for significant UX improvements. I think there's a good chance this doesn't even happen, though, but confirmation on that will need to wait until I or another contributor can test this manually with speech recognition software.
Comment #40
lauriiiI tested #39. It seems like with the reduced debounce wait, the hiding is barely visible. I think we could probably remove the animation.
There's another problem with hiding those elements; the hidden elements are not accessible by screenreader rotor.
Comment #41
bnjmnmRe #40
Good call. This is yet another approach that should address the accessibility concerns mentioned earlier without hiding items form the screenreader rotor. To address this, table rows that have elements that would appear under the sticky form are pushed further down the page (and out of the viewport) by a spacer preceding the table row. Pushing it out of the viewport. This means the elements will not be seen by "show numbers" within the coordinate range of the sticky form, but they are still visible to the screenreader rotor.
Comment #42
lauriiiIt still seems like a regression to have the table rows appear on the table with a delay. I know the effect is similar to infinite scroll, but it's not exactly the same. Usually infinite scroll shows you rows immediately while scrolling until you run out of items.
I'm also concerned of the performance of the JavaScript because for example if I do page down, the page is jittering. I'm wondering how would this work with older, lower performance computer?
Would be great to hear what other people think.
We should also consider what we want to do with table rows that are partially under the tray. For example, on the gif here the row is partially under the tray and therefore it's hidden so that it can be seen.
Comment #43
andrewmacpherson commentedRe #35:
No, we absolutely must not do this. It has the effect of removing controls from the accessibility tree based on the scroll position of the viewport. To a blind screen reader user, this amounts to important information and controls disappearing then reappearing seemingly at random. These include:
This issue is turning into a lesson in how to dig a deeper hole through code. I'm not confident about this design at all.
EDIT: Ah, I see @lauriii picked up on this in #40. It's not just about the "screenreader rotor" though (that's a VoiceOver-specific feature). It also means these controls won't be found by any other screen reader feature, such as "move to next checkbox", or even just reading the page in linear DOM order. When using table navigation (e.g. go down a column) some cells will appear empty. Note, I haven't studied the changes in #41 yet.
Comment #44
andrewmacpherson commentedI'm having trouble following the screen recordings. I can't pause them, the movement is fast, and I'm not sure where the "start" of the sequence is.
I notice that the sticky footer is transparent in some screenshots/movies, but not in others. Why's that?
Comment #45
andrewmacpherson commentedLots of issues here:
'Perform actions on the selected items in the %view_title view',- This is quite a long label. Why not something short like "bulk actions"?role="group", instead of HTML<fieldset>? See the first rule of ARIA use.Most importantly, this really doesn't belong in Claro. In the "content vs. presentation" separation-of-concerns, form semantics, labels, and instructions are most definitely content.
If the information from Views module is deemed inadequate, it should be addressed in Views module, so that all sites can benefit regardless of what theme is used. By putting this in Claro, all we're doing is making it harder for other themes to keep up; they'll have to duplicate this effort. And while Claro is lovely, I don't expect distros to ditch their own admin themes. So I'm strongly against theme-specific information overrides like this in the name of accessibility.
I do think it's worth filing a separate issue to explore this in Views module. If views had configurable label and/or instruction text here, then it could be usefully tailored to individual views, for admin and public use cases. That would be a very versatile feature, and I think could be implemented in a way that doesn't disrupt existing sites.
Comment #46
andrewmacpherson commentedWhat's the justification for making this visually hidden? It goes against WCAG SC 3.3.2 Labels or Instructions.
By doing so, you're creating more effort for speech control users. Controls are activated by saying the name of the control. If this is invisible, then it requires the "show numbers, choose 56" method. So a single-step action has been replaced with a two-step action. For more detail see #3083570: Do not hide the label for the text format select input.. This is a repeat of the same mistake.
I think this is also made worse by the proximity of the "2 items selected" text, especially in the narrower viewports. See the screenshots in #17 (not sure if those up to date). Elsewhere, select controls have a bold label adjacent to them. Here the label is invisible, and the bold "2 items selected" occupies a similar position. So my worry is that this may be mistaken as the label for the select control. I think that would amount to a failure of WCAG SC 2.5.3 Label in Name - the text which occupies the usual position of the select label isn't the accessible name of the control. I'm not confident about this assessment though; the proximity bothers me, but on the other hand the "2 items selected" doesn't read like the label for a select. It might be worse in non-English localizations though.
I recommend restoring the visible label for this select.
Comment #47
andrewmacpherson commentedA few issues here:
Overall, I think the entire message can be removed.
Comment #48
bnjmnmThis patch was created when #42 was the most recent comment, it happened that several comments appeared in the window between creating the patch and uploading it here. Will read through the additional feedback and address in an additional patch.
Comment #49
andrewmacpherson commentedAha, both working on this at the same time. I'm not done yet, there's a lot going on in this patch. More comments to follow.
Removing some outdated questions from the issue summary...
The first part is clause is vague, and the second part isn't relevant after #47.
The same way any other control is accessed. Press tab until you get there. I don't think the bulk operations button deserves any special treatment. You may as well ask "How do I get back to the row I selected earlier, because I've changed my mind?".
Ye Gods, please no :-) The dynamically-added skip-links were discussed in #32 and have been removed from the patch. It was an over-engineered, untested, and novel pattern with no known precedent. Moreover, it would be bizarre to apply this to a single form. Other forms in Drupal are also long (product entity forms, say).
Besides, pressing tab is already a well-known, straightforward, and reliable way to reach them (at least, in the sense that it doesn't require much thought). I think designers often focus on the number of tab stops, and have an unrealistic impression that tabbing is some great labour. In practice, many habitual keyboard-only users take it in their stride. Invisible controls are a much greater nuisance when tabbing.
Yes, much discussion so far. Leaving this item in the issue summary since it's ongoing.
Comment #50
lauriiiThank you for the review @andrewmacpherson!
I think the footer was made transparent just for demonstration purposes so people could see that there are not elements under the bulk operations tray.
Comment #51
andrewmacpherson commentedIn the comment for
scrollResizeHandler():I'm not sure about this. Note that some speech control AT (e.g. Android) has persistent numbering; while others show the numbers on demand, then remove the numbers after choosing one.
Comment #52
andrewmacpherson commentedThe scroll handler stuff is interesting, but I'll need time to grok it well. There are lots of scenarios that lead to scroll events, so I'm thinking hard about who's going to be frustrated by this.
Question: is the spatial displacement of rows downwards, or upwards? Hard to tell from the GIFs.
Comment #53
andrewmacpherson commentedAnother comment I don't follow:
What are "non-intuitive" and "pleasant" actually referring to here? What's wrong exactly?
Comment #54
lauriiiIs there another app for this in Android than the Voice Access from Google or does Voice Access allow configuring the numbers as persistent? I tested Voice Access and couldn't figure out how to set the numbers as persistent.
The rows are pushed downwards but it shouldn't be apparent in any way visually on the screen.
Comment #55
bnjmnmUpdated comments based on feedback in #53 and #51. The new phrasing may help with the overall understanding of what the new JS is doing, but if another round is needed that's fine - explaining this in a concise manner is tricky and may require a few tries :).
Comment #56
bnjmnmReroll
Comment #57
andrewmacpherson commentedYes, there are various speech control applications for Android, but the one I've used is Voice Access from Google. I'm using Android v9 with Voice Access v4.
Voice Access makes numbers persistent by default (indeed, I don't know how to make them otherwise). When you say "show numbers", they'll persist until you say "hide numbers". The numbers will remain visible on screen whilst scrolling, though their position can fall out of step with the thing they refer to, depending on how fast you scroll.
I wonder if you're making mixed use of speech and finger touch? There is a setting called "cancel on touch", but that's equivalent to "stop listening" rather than "hide numbers". If using "show numbers" at the same time as "cancel on touch", then a finger touch will make the numbers disappear. Numbers will appear again when listening is re-activated.
Comment #58
klonosJust a thought (and sorry for joining the party late): once the user has started selecting checkboxes, it is clear that they intent to perform bulk operations instead of filtering. So instead of having the bulk operations form appear at the bottom of the screen and become sticky, how about we have it so that the filtering controls container at the top is replaced by bulk operations.
Comment #59
bnjmnmIn #51 there was uncertainty regarding part of a comment that states:
Since "show numbers" [...] does not display during scroll/resizeAnd this discussion continued in #54 and #57
The statement was removed in #55, since it was potentially inaccurate and ultimately unnecessary. The functionality has not changed, however. In instances where "show numbers" labels are present during scroll and resize events, these labels might wind up underneath the sticky *during* these events. When these events complete, the spacer is reintroduced and no "show numbers" labels appear underneath the sticky. I feel this is acceptable as "show numbers" labels would not be used during resize or scroll anyway, so the viability of the approach is not dependent on these labels being hidden during these events.
From #58
This is interesting, but there's a few reasons I don't think it would work.
unlikelyonce on or more items are selected for bulk operations, filtering and selecting items are not mutually exclusive actions, and one should not prevent the other from happening. The hiding of filters could be perceived as broken, too, as that and selection are not inherently connected.Comment #62
sakthivel m commented#56 Patch Failed, Attached screenshot here.
Comment #63
ravi.shankar commented@Sakthivel M Thanks for reviewing this.
We can retest the patch on a particular version to check patch status, instead of posting SS of the terminal.
Comment #64
sakthivel m commented#64 Please review the patch
Comment #66
gauravvvv commentedThe Action button is displaying after the content now. Apply to selected items is visible after the content only.
I have added a before and after patch screenshot for #65.
Comment #67
gauravvvv commentedUpdated IS
Comment #68
bnjmnmReverted the issue summary update in #67. The screenshots added there and in #66 are not accurate. They have the PHP part of the new design, but not the CSS or JavaScript. Most likely a cache needs to be cleared.
The new designs are already provided in the issue summary via a Figma link https://www.figma.com/file/NpZUAp8BEkMJvm5gKBCDBB/Claro?node-id=16591%3A...
Comment #69
rinku jacob 13 commentedpatch #65 failed for drupal 9.3.x dev
Comment #70
bnjmnmRe #69
This is not accurate. There is no patch in #65, it's a merge request, and it is erroring on files that are no longer being used as of #65. This must be patch #64 or older.
This issue is no longer using patches, use the merge requests instead. #65 is applying fine, otherwise the tests wouldn't be passing.
Comment #71
chetanbharambe commentedVerified and tested merge request #65.
Merge request applied successfully but not working as expected
Testing Steps:
# Goto: Appearance > Apply Claro theme
# Goto: admin/content
# Select the multiple contents
# The Action button is not visible
Expected Results:
# The "Action" button is displaying after the content now. "Apply to selected items" is visible after the content only.
Actual Results:
# The "Action" Word is missing.
# "Apply to selected items" button should be under the Action button.
# Black background color should not appear.
Not working as expected.
Moving to Needs work.
Comment #72
bnjmnmWhere did you get the expectations used for the review in #71, @chetanbharambe? It seems like you're reviewing based on different criteria than what is in the issue summary and comments.
The things you said didn't meet expectations:
Feel free to find me on Drupal Slack if you'd like additional guidance with this, and if we know more about the points of confusion we can revise the issue summary to make it easier to understand.
Comment #73
bnjmnmIt sees like the speech control concerns expressed by @andrewmacpherson could be moved to a followup if necessary. When I reported similar concerns with sticky navigation + speech controls in Olivero those concerns were among those that @andrewmacpherson
removed from the issue entirely and were not moved to a follow up.
If it's not concern for something that appears on every page in Olivero, I have to imagine it would be acceptable to move those concerns to a followup if the code specific to speech control accommodations is preventing this issue from moving forward.
If it seems like this I'm off base regarding what I believe to be an equivalence between the speech control issues reported here vs the ones removed in #3186349: Major accessibility problems with Olivero header show/hide feature (more interactive elements in the content table etc.), any chance the education/evisceration ratio of the response could lean heavier into the "educuation" part?
Comment #74
vikashsoni commentedApplied patch #64 working fine and looks good for me
For ref sharing screenshots .....
Comment #75
bnjmnmRemoving credit for redundant screenshots in #74
Comment #77
mherchelI've spent a bit of time reading through the comments and have a couple notes on this:
From @andrewmacpherson in #45
I agree 💯💯💯💯💯 to this. Note I also believe this applies to lots more Claro issues.
Unaddressed issues
From @andrewmacpherson in #44
This isn't yet addressed.
This isn't yet addressed either.
from @andrewmacpherson in #46
This isn't addressed. However in my opinion, we don't need to see the labels (as its very obvious). Either way, it needs to be addressed.
Lets bring this to accessibility office hours
To get this issue over the finish line, we need to bring it to Accessibility Office Hours and get a complete and actionable list of tasks to complete. If we don't, it's likely that the goal posts will keep moving and this will never be committed.
Comment #78
rootworkI'm just appearing is this queue now, but since there hasn't been movement on the issue since January (and really since last year) how do we bring this to a11y office hours?
Comment #79
mherchelBrought to accessibility office hours tonight. We discussed the label on the popup's select, and we decided we do need it.
We did a lil' bit of designing in the browser and came up with this, which Mike Gifford (and the rest of us) feels looks good and is accessible.
Comment #83
dwwCrediting other folks on the accessibility call.
Comment #84
gauravvvv commentedComment #85
mgiffordThanks for doing that in the fly at the office hours last night @mherchel. This addresses the label issue and I think streamlines the process. Would still need to deal with the issues Andrew in #44 but I think it's a step ahead.
Comment #86
dwwShould be obvious from the screenshot, but also note the proposal to remove the separate “3 items selected” counter and to update the button label accordingly. That way, we always know how many things we’re going to touch if we press the button. The info you need is always right there.
Comment #87
rkollerone further detail about the blue button on the black background i've noticed and checked right now. it isn't meeting WCAG SC 1.4.11. just took the values from the screenshot in #79 with the color picker in CCA. the blue in the button is
#144DC4and the black in the background color is#22222Fleading to a color contrast of 2.2:1 but 3:1 would be required.Comment #88
saschaeggiThe blue used on dark backgrounds should be
--color-blue-400which should pass at 3.61:1White text to blue 400 would be around 4.29:1
Comment #92
lauriiiI rebased the MR on 10.1.x. Also addressed the feedback from #88 and #79.
This is how the bulk operations look like currently:

Comment #93
mherchelThis looks great! Thanks for all the hard work everyone! 💪 I'm removing the "Needs accessibility review" because of #79
I tested this in RTL, on Chrome, FF, and Safari. I tested narrow screens.
I also tested this in forced colors emulation.
I took special care to look though the accessibility of the new functionality including colors, focus handling, focus states, etc.
The only issue that I found is that the button text only has a 4.25:1 contrast ratio. It should be at least 4.5:1. If this is a larger issue than this specific button, we can create a followup. But in the meantime, I'm setting this to needs work. Once this color issue is resolved, this should be good to RTBC!
Comment #94
lauriiiAddressed the issue with the button contrast based on input from @ckrina.
Comment #95
rkollerthe only problem i see, the latest changes fix the color contrast of the white text on the blue button color but at the same time it reduces the color contrast of the blue button in contrast to the blackish background. rgb(0,78,255) and rgb (35,36,41) lead to a color contrast of 2,61:1 and it should have at least 3:1 (WCAG SC 1.4.11 - see #87)
Comment #96
rkollerand i've noticed one other detail. i've learned about how to emulate the high contrast mode in blink based browsers in yesterdays project browsers a11y call by @mherchel (thanks for that again!). i've tested on macos 12.6.1 and the latest edge (darkmode, forced color active, prefers contrast more set in the rendering tab).
if i compare the screenshot:


with
in #93
the separation lines are greyish and so is the drop button. not sure if that is due to some emulation errors or a misbehavior in edge in general. i have no prior experience testing the high contrast mode as i've mentioned. therefore not sure if it is something relevant to deal with.
Comment #97
smustgrave commentedThis issue is being reviewed by the kind folks in Slack, #need-reveiw-queue. We are working to keep the size of Needs Review queue [2700+ issues] to around 200, following Review a patch or merge require as a guide.
Moving back to NW as there appear to be some issues brought up.
The MR appears to have a build error also.
Comment #98
lauriii#95: Based on https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast, the current design may be considered a success against WCAG SC 1.4.1. Quoting the relevant part:
The background color used here also has a significantly higher contrast compared to the default grey button: #3272266: Grey button's background color has a too low contrast ratio against page background which is used for the button currently. Because of that, I don't this should not consist of a regression to accessibility.
Comment #99
mherchelIn #93 I state
In this comment, I'll actually remove that tag!
Comment #100
ckrinaI've tested this locally and everything worked fine on all breakpoints. So +1 to this getting in.
Since it's such a big issue it'd be great to get another pair of eyes to RTBC this.
Comment #101
smustgrave commentedTesting https://git.drupalcode.org/project/drupal/-/merge_requests/2902#note_140393
And the bulk operations bar is certainly more noticeable now.
Tested with the various chrome emulators (ipad, ipad pro, iphone10, etc) and all looks good.
+1 for RTBC
Comment #102
mherchelWent through comments and updating issue credits.
Comment #104
ckrinaCommitted d757e2c and pushed to 10.1.x.
We've been working together with @lauriii reviewing this issue and all the sing-offs. Since he's a Claro maintainer, I'm UX and Claro maintainer, and this issue has been discussed at the Accessibility office hours and all the issues raised have been addressed, we considered this has gone trough all the gates to get in. It is an important UI change, but since we still have the option to revert it we've considered it's more important to get that in and properly tested with enough time rather than waiting for more reviews in the issue. It'll give more time to any contrib or custom module maintainer to work on any needed fix.
Comment #105
lauriiiTagging for 10.1.0 release highlights.
Comment #107
quietone commentedUpdating tag
Comment #108
acbramley commentedSome side effects from this do indeed affect VBO
#3378091: Disabled primary button in views area has grey text on blue background (bad contrast)
#3378090: Styling broken in VBO form on Drupal 10.1