Don’t use customized CSS scrollbars – Eric Bailey
Within the spirit of “everything old is new again,” browsers are as soon as once more supporting the flexibility to fashion the scrollbar. Very like custom CSS mouse cursors, I really feel that is additionally a mistake.
While you fashion issues on the net, you get management over virtually your entire expertise. From ten thousand ft up, your scope of concern is that this:
The scope of concern for the browser is that this:
The browser’s UI is knowledgeable by the working system it’s put in on. That is vital to notice.
Browser UI is used to assist create consistency throughout your entire expertise of utilizing a tool. While you deviate from these requirements, you introduce ambiguity.
Ambiguity means much less certainty about what the piece of UI is, the way you work together with it, and what results taking motion on it is going to trigger. The extra you deviate, the extra complicated issues get.
This phenomenon is why checkboxes use squares and radio buttons use circles—even with flat design eradicating depth and texture from all the pieces.
We could also be long-separated from car dashboards using physical press knobs, swapped out in favor of dangerous, inefficient touchscreens. Nevertheless, the metaphors drawn from these bodily equivalents nonetheless persist.
Scope of concern
Scrollbars are a part of the world of the browser that’s exterior your scope of concern.
Some might argue with this and declare that being allowed to fashion them with CSS signifies that it’s honest sport. Nevertheless, I believe there are some accessibility issues that weren’t taken under consideration earlier than this functionality was given to us by the platform.
Following are a listing of questions it is best to ask your self should you’re contemplating modifying your scrollbar’s visuals.
The management
For reference, this CodePen is what I used to carry out my testing:
Can your branding succeed with out scrollbars being personalized?
Customized scrollbars, like customized mouse cursors, can styled to assist reinforce the branding of a web site or internet app. Simply because you’ll be able to, nonetheless, doesn’t imply it is best to.
Ask any profitable advertising and marketing company—branding is a lot greater than how one thing appears. You in all probability have to discover a new model technique in case your complete outreach efforts rely on a scrollbar’s look.
Spoilers: you don’t. Scrollbars work with out CSS.
You could be scoffing on the kilobytes this elimination represents, however in terms of internet efficiency, each little bit counts. By the ruthless lens of efficiency optimization, that is pointless information to drive somebody to obtain.
Community throttling, metered information plans, lifeless zones, and plenty of different components past your management are all forces you should take care of. Higher to prioritize sending styling data in your web site or internet app’s precise floor space.
Will your customized scrollbar colours move coloration distinction?
If somebody can’t see one thing, they gained’t know it’s there. In the event that they don’t know it’s there, they gained’t take motion on it. It’s so simple as that.
A historical past lesson
Apple realized the lesson about seen scrollbars the laborious means when it launched its ultra-minimal, disappearing scrollbar indicators:
There’s no visible indication that there’s extra content material current on this window—the one solution to uncover it’s to scroll downwards. Nevertheless, with out an affordance to point the presence of further offscreen content material, the possibilities are low that somebody will trouble to examine.
For this reason Apple launched a choice to always show scroll bars. Consider this choice quite a bit like their introduction of the reduced motion accessibility toggle, the place a setting needed to be launched after most people revealed that their novel thought really made issues worse for lots of people.
Home windows adopted this path blazed by Apple, and likewise needed to set up their own preference to cope with this difficulty:
As an apart, I set the working techniques I exploit to all the time present scroll bars. It’s a great way to assist uncover, debug, and take away overflow points in your CSS. It’s additionally a good way to get irritated by individuals who don’t.
WCAG
For those who modify the Working System scrollbar’s look, it’s now on you to make sure that it meets Web Content Accessibility Guidelines standards. This standards consists of minimal viable coloration distinction.
Particularly, the instant concern is Success Criterion 1.4.11: Non-text Contrast. This criterion is degree AA, which is the standard degree most web sites and internet apps goal, and isn’t a specialised concern.
I’m not going to get into the particulars of the right way to meet this success criterion this since I don’t suppose you need to be modifying the scroll bar’s look within the first place. That mentioned, you’re now conscious it’s a problem so you’ll be able to’t declare ignorance.
Will your customized scrollbar colours defer to a user-set theme?
Home windows 11’s shiny new UI is another coat of paint slathered over previous editions. As you peel again these layers, you discover the UI and performance of variations of Home windows previous.
Certainly one of these older options with a brand new coat of paint is the flexibility to theme Home windows. Themes mean you can specify the wallpaper, sounds, accent coloration, mouse cursor, and different qualities and shortly swap them into tempo.
Themes are additionally transportable, and are shared as .theme
or .themepack
codecs. Windows offers its own official themes. There are additionally websites that aggregate, categorize, and share themes individuals have made.
Some Home windows Themes regulate the scrollbar’s colours. From my testing, customized CSS scrollbar styling overrides this:
If I might wager a guess, it’s doubtless that theme colours tie into Compelled Colour mode considerations behind the scenes (extra on this in a bit).
The mechanism that orchestrates a Home windows theme is immaterial to the general level: Your resolution to regulate the scrollbar is overriding another person’s specific choice.
We additionally don’t know why somebody is altering their theme. For some, it may very well be aesthetic sensibilities. For others, it may very well be adjusting issues to reduce/enhance distinction, or create extra uniformity. It would even be a mix of the earlier.
Whereas this sort of OS customization used to be more popular, it’s nonetheless supported by Home windows and sure has tens or tons of of 1000’s of individuals utilizing the characteristic. With regards to accessibility, it’s additionally a horrible thought to make deciding who and what to assist a reputation contest.
Customizations like this are deeply private. They could be for:
- Entry causes,
- Private aesthetic preferences, or
- A mixture of each.
While you override this expression, you’re not directly speaking that somebody’s private preferences are much less vital than your personal visible sensibilities.
You can also’t detect the presence of a Home windows theme through CSS or JavaScript. This implies you’ll be able to’t conditionally take away customized CSS scrollbar styling. Once more, higher to proactively accommodate and never modify the scrollbars within the first place.
Will your customized scrollbar colours honor specialised show modes?
I’ve some dangerous information for you.
Within the persevering with theme of “you personal accountability for it should you modify it,” there are two vital truths you should be taught:
- Scrollbars modified by CSS don’t robotically adapt to honor specialised show modes, and
- Each customized scrollbar CSS generator instrument I evaluated didn’t embrace code to accommodate this.
It’s value immediately stating that these show modes are extremely private customizations. This consists of avoiding experiencing ache or discomfort, all the way in which to the characteristic being the one factor that makes utilizing a tool really viable.
The affected modes are:
Compelled Colours mode/Home windows Excessive Distinction mode
Compelled Colours mode replaces all colors on the Operating System with a palette chosen by the person using it. It may be used to extend the distinction to a degree that works for somebody with low imaginative and prescient, or lower the distinction so visuals are much less vibrant and extra uniform.
Modifying the scrollbar through CSS means the scrollbar will successfully disappear when a Compelled Colour mode theme is utilized. Once more, should you can’t see it, you gained’t realize it’s there.
Elevated Distinction mode
macOS and iOS assist the flexibility to create more visual distinction between different parts of the Operating System UI. That is separate from Compelled Colours mode/Home windows Excessive Distinction mode.
Curiously, the border that separates the scrollbar from the content material in Finder is exempt:
Non-Chromium browsers (Safari and Firefox) will apply a better distinction scrollbar therapy when Elevated Distinction Mode is lively. It could require a refresh to set off.
Very like with Compelled Colours Mode, customized CSS scrollbars is not going to honor the presence of an enabled Elevated Distinction Mode.
Contemplating that your entire purpose for elevated distinction mode’s existence is to create extra apparent and outlined sections of UI, you need to protect this predictability.
What about inverted colours mode, filtered colours show mode, and reader mode?
I’m blissful to report that these modes gleefully accommodate or ignore your customized scrollbar CSS and do their factor.
It’s nonetheless value mentioning these modes right here, in that they’re typically neglected by individuals when creating digital experiences. You don’t have to create a collection of bespoke therapies right here. Quite the opposite, you are able to do extra by doing much less by not touching the scrollbar’s look.
Is the contact goal space giant sufficient?
Once more: For those who modify the working system defaults, you tackle the accountability of proudly owning it.
Too slim
There’s nothing stopping you from making a scrollbar 1px
large. Or 0.5px
. Or 0.025rem
. Or any of the opposite minuscule widths I examined.
No automated guardrails are current to forestall somebody from making a scrollbar so slim that it may be next-to-impossible to click on on. I shouldn’t must listing out all of the the reason why this is a matter.
Sure, individuals can override this override with extensions resembling Stylus, however that presupposes that individuals have:
- The notice of those sorts of assets,
- Gadgets able to utilizing them,
- The technical experience wanted to undo the modifications, and
- The stamina to maintain this for each web site and internet app that does this.
The browser doesn’t have your again right here. There aren’t any controls, preferences, or different buried options I’m conscious of that may sort out this difficulty. Browsers have a ton of labor to do on this kind of space, however it is simply not a priority.
Modifying the working system scrollbar width
Home windows enables you to globally regulate the scrollbar width via modification of a registry value. It impacts any and all functions that use working system scrollbars. This consists of browsers you may have put in, until a web site or webapp makes use of a customized CSS scrollbar therapy.
I’m fairly certain macOS doesn’t allow you to modify the scrollbar width, both through its UI or its giant assortment of hidden terminal commands. Linux is a little bit of a giant query mark to me, in that there are such a lot of totally different variants on the market that I’m certain it’s doable from a sheer likelihood perspective.
It’s additionally value noting that Windows is incredibly popular, regardless of most of latest internet improvement being accomplished on macOS. We frequently are likely to overlook that.
Not my width
Whereas having the ability to regulate the scrollbar’s width through CSS might enhance the contact goal measurement to beneficiant proportions, it may not be sufficient.
With out understanding what an individual has adjusted their scrollbar width to, your override to their customization might cut back its interactive space to a measurement that’s too small to satisfy their wants. This implies they can’t scroll.
Solutioneering
A Home windows registry modification is a fairly esoteric method. Nevertheless, the purpose is just not that it’s tough to do. The purpose is that individuals do it to get what they want, and we must always honor that.
Hypothetically talking, you would attempt querying the scrollbar width, seize that, and inject it right into a CSS customized property utilizing JavaScript to manage your scrollbar width. Nevertheless, if you’re choosing up one of many huge beats from this publish, it’s that possibly it is best to write much less code and in doing so permit extra individuals do extra issues.
JavaScript is fragile. Information is treasured. Self-importance is sort of all the time at odds with consumer wants.
I’m exhausted by individuals pondering they’re intelligent and attempting to solutioneer their means round entry points by creating much more brittle and discriminatory issues masquerading as options. Let the particular person use the scrolling expertise they’re used to, and use your newfound free time to unravel precise issues.
Will individuals perceive why your scrollbar appears totally different than each different scrollbar on their machine?
Cognitive accessibility is likely one of the most tough accessibility issues to quantify, which is why WCAG is comparatively tight-lipped about it.
Nevertheless, cognitive accessibility concerns are some of the most prevalent. We shouldn’t be fast to dismiss them, even when the entry points their issues current can’t be neatly detected by automated accessibility scanners.
While you modify your scrollbar’s visuals, you’re breaking external consistency. It now not appears like every other scrollbar on an individual’s machine, in addition to every other web site or internet app on the web.
Digital literacy can also be a spectrum. When digital issues don’t look or behave the way they are expected to, individuals are likely to internalize it as a private failure—they broke one thing, they’ve been hacked, they’re being spied on, and so on.
It’s additionally a fallacy to suppose that technologically literate people are exempt. Circumstances resembling despair can have an effect on somebody’s degree of digital of literacy, in that it may decrease your skill to course of and take motion on data.
For those who’re pondering that individuals who imagine they broke one thing on a web site would possibly really feel depressed about it, you’re not mistaken. Certain, you would run some usability research to see in case your supposed viewers understands the adjustment you’ve made to the scrollbar, however contemplate:
- Many consumer testing platforms have entry obstacles, which can stop a few of the individuals affected by your resolution from having the ability to give suggestions in your resolution.
- Organising usability testing classes are costly and time-consuming affairs, and there are doubtless extra thorny issues your group will prioritize getting perception into.
- Many organizations can’t be bothered to even run qualitative usability testing within the first place.
Ideally, you don’t have content material overflow, after which consequently the necessity for scrollable areas inside your web site or internet app.
For those who do have content material overflow, depend on the scrollbar affordances and customizations persons are already used to and have made. You’ll additionally need to make sure those scrollable regions are accessible.
Everybody thinks they’re the exception to the rule. Given what I simply outlined, I ask you to ask your self if the customized scrollbar is absolutely essential on this scenario?
Please don’t. There are such a lot of issues to get proper, and so some ways it may go mistaken.
An individual having the ability to modify an expertise so it fits their particular wants is likely one of the internet platform’s biggest strengths. You shouldn’t try to dam, subvert, or in any other case undermine somebody’s skill to take action.
Why do you hate enjoyable?
A tough lesson I continue to learn time and again is that everybody is into accessibility up till it impacts one thing they like.
I don’t hate enjoyable. I can’t do a lot previous promising you I don’t. Nevertheless, too many instances options are put out into the world with out individuals doing their due diligence.
This implies stepping out of your consolation zone. Take a look at precise assist with totally different working techniques and modes aside from those you employ each day. Keep in mind that the way in which you employ know-how is just not the default, and that almost all expertise is a contradiction in phrases.
Extra importantly, it means asking precise individuals affected by your selections what they consider them. And should you do that, don’t forget survivor bias: Individuals who can’t use your service aren’t represented in your analytics.
I need everybody to have enjoyable, simply not the expense of synthetic, pointless exclusion.
Options which can be put out into the world with out contemplating even primary accessibility place completely synthetic, pointless burden on discriminated populations the place utilizing a tool can already be a thankless slog.
These aren’t “edge instances.” These are the each day lived experiences of individuals. In isolation, experiences like this may be annoying. In aggregate, they can be overwhelming.
The net is an unimaginable medium, able to creating lovely, revolutionary, accessible experiences. There are numerous methods to speak these qualities in an accessible, inclusive means. All I’m asking is to mood your pleasure with the smallest little bit of self-restraint.
Can’t individuals simply—
One other widespread chorus is that there ought to be some kind of toggle, or swap, or checkbox, or choice widget that lets somebody flip one thing like this off.
We’ve already lined that browsers aren’t actually prioritizing this kind of factor. Even when they have been, it’s not the purpose. We need to proactively accommodate fairly than by accident exclude.
An opt-out strategy assumes individuals know the choice:
- Exists within the first place
- The place it’s situated, and
- Tips on how to allow it.
It additionally assumes:
- Each machine they’ve could have this choice,
- Each browser put in on each machine they’ve could have this choice,
- Each app, web site, and internet app will honor this choice, and
- The method of enabling this choice is accessible (say needing to scroll to it utilizing an inaccessible scrollbar).
Extra importantly, an opt-out strategy consciously locations the burden on the particular person affected to handle the problems you create.
Wrapping up
You don’t get to choose who visits your web site or internet app, what their circumstances are, or how they select to work together together with your content material. Selecting to not mess with the browser’s scrollbar is a straightforward, but highly effective factor you are able to do to assist guarantee individuals can get what they want.
For those who don’t hearken to me, I hope you’ll be able to a minimum of take some time to listen to Blake Watson.