Het artikel beschrijft de technische ontwikkeling van de Windows-scrollbalk. Waar vroege versies enkel basisbewerkingen ondersteunden, introduceerde Windows 2000 een contextmenu met functies zoals 'Hier scrollen' en de Shift+klik-sneltoets om direct naar een specifieke positie te springen.
De auteur merkt op dat deze consistentie in moderne software is verdwenen door de opkomst van verschillende frameworks. Zo implementeren Electron, WPF, WinUI en Qt deze functies elk op een andere manier (of helemaal niet), waardoor de gebruikerservaring gefragmenteerd is geraakt.
Een korte geschiedenis van Windows-scrollbalksneltoetsen
De introductie van het contextmenu
Windows 2000 voegde een rechtermuisknopmenu toe aan de scrollbalk. Dit menu bood vier opties die overeenkwamen met bestaande muisbewerkingen, twee bewerkingen die overeenkwamen met bestaande toetsenbordbewerkingen, en één nieuwe bewerking.
| Menu-optie | Muis | Toetsenbord |
| Hier scrollen | Schuifregelaar naar positie slepen | |
| Bovenaan | Schuifregelaar naar begin slepen | Home |
| Onderaan | Schuifregelaar naar einde slepen | End |
| Pagina omhoog | Klikken in bovenste marge | PgUp |
| Pagina omlaag | Klikken in onderste marge | PgDn |
| Omhoog scrollen | Klikken op pijl omhoog | $\uparrow$ |
| Omlaag scrollen | Klikken op pijl omlaag | $\downarrow$ |
De interessante nieuwe optie is "Hier scrollen": je kunt met de rechtermuisknop direct op de plek klikken waar je naartoe wilt scrollen en vervolgens "Hier scrollen" kiezen. Dit is veel handiger wanneer je een grote afstand wilt overbruggen, omdat je de schuifregelaar niet hoeft vast te pakken en helemaal naar de gewenste plek hoeft te slepen. Je kunt je simpelweg concentreren op waar je naartoe wilt, in plaats van waar je vandaan komt.
Een nog minder bekende sneltoets werd op hetzelfde moment toegevoegd: door Shift ingedrukt te houden terwijl je op de scrollbalk klikt, springt de schuifregelaar direct naar de plek waar je klikte.
Fragmentatie in moderne frameworks
Helaas maakt bijna niemand tegenwoordig nog gebruik van Win32-scrollbalken. Vrijwel iedereen gebruikt frameworks die hun eigen aangepaste scrollbalken leveren.
- Electron en andere web-apps: Deze maken gebruik van de Chromium-scrollbalk. Deze implementeert het contextmenu niet, maar ondersteunt wel de Shift+klik-sneltoets.
- WPF XAML-framework: Dit framework lijkt zowel het contextmenu als de Shift+klik-functie te implementeren.
- WinUI XAML-framework: Dit framework heeft frustrerend genoeg geen van beide (hoewel er ten minste één persoon is die hierom heeft verzocht).
- Qt-framework: Dit framework heeft meerdere aanpassingspunten, waardoor het aan de ontwikkelaar van de app ligt. Contextmenu's kunnen worden ingeschakeld met
SHScrollBarContextMenu, "links-klikken om naar een positie te springen" met SHScrollBarLeftClickAbsolutePosition, en "midden-klikken om naar een positie te springen" met SHScrollBarMiddleClickAbsolutePosition.
Het resultaat is dat tegen de tijd dat men op de hoogte is van een specifieke sneltoets voor scrollbalken (zoals Shift+klik), het ecosysteem zo gefragmenteerd is geraakt dat men er niet eens meer op kan vertrouwen dat deze functioneert.
Gedurende de eerste twee decennia van Windows had het scrollbalk-besturingselement slechts een paar basisbewerkingen. (Laten we voor de duidelijkheid aannemen dat de scrollbalk verticaal is.) Er zijn vijf muisdoelen: de pijlen aan de uiteinden van de scrollbalk scrollen per regel, de gebieden tussen de schuifregelaar (de 'thumb') en de pijlen scrollen per pagina, en de schuifregelaar zelf laat je de balk naar een specifieke positie slepen.
Een korte geschiedenis van Windows-scrollbalksneltoetsen
De introductie van het contextmenu
Windows 2000 voegde een rechtermuisknopmenu toe aan de scrollbalk. Dit menu bood vier opties die overeenkwamen met bestaande muisbewerkingen, twee bewerkingen die overeenkwamen met bestaande toetsenbordbewerkingen, en één nieuwe bewerking.
| Menu-optie | Muis | Toetsenbord |
| Hier scrollen | Schuifregelaar naar positie slepen | |
| Bovenaan | Schuifregelaar naar begin slepen | Home |
| Onderaan | Schuifregelaar naar einde slepen | End |
| Pagina omhoog | Klikken in bovenste marge | PgUp |
| Pagina omlaag | Klikken in onderste marge | PgDn |
| Omhoog scrollen | Klikken op pijl omhoog | $\uparrow$ |
| Omlaag scrollen | Klikken op pijl omlaag | $\downarrow$ |
De interessante nieuwe optie is "Hier scrollen": je kunt met de rechtermuisknop direct op de plek klikken waar je naartoe wilt scrollen en vervolgens "Hier scrollen" kiezen. Dit is veel handiger wanneer je een grote afstand wilt overbruggen, omdat je de schuifregelaar niet hoeft vast te pakken en helemaal naar de gewenste plek hoeft te slepen. Je kunt je simpelweg concentreren op waar je naartoe wilt, in plaats van waar je vandaan komt.
Een nog minder bekende sneltoets werd op hetzelfde moment toegevoegd: door Shift ingedrukt te houden terwijl je op de scrollbalk klikt, springt de schuifregelaar direct naar de plek waar je klikte.
Fragmentatie in moderne frameworks
Helaas maakt bijna niemand tegenwoordig nog gebruik van Win32-scrollbalken. Vrijwel iedereen gebruikt frameworks die hun eigen aangepaste scrollbalken leveren.
- Electron en andere web-apps: Deze maken gebruik van de Chromium-scrollbalk. Deze implementeert het contextmenu niet, maar ondersteunt wel de Shift+klik-sneltoets.
- WPF XAML-framework: Dit framework lijkt zowel het contextmenu als de Shift+klik-functie te implementeren.
- WinUI XAML-framework: Dit framework heeft frustrerend genoeg geen van beide (hoewel er ten minste één persoon is die hierom heeft verzocht).
- Qt-framework: Dit framework heeft meerdere aanpassingspunten, waardoor het aan de ontwikkelaar van de app ligt. Contextmenu's kunnen worden ingeschakeld met
SHScrollBarContextMenu, "links-klikken om naar een positie te springen" met SHScrollBarLeftClickAbsolutePosition, en "midden-klikken om naar een positie te springen" met SHScrollBarMiddleClickAbsolutePosition.
Het resultaat is dat tegen de tijd dat men op de hoogte is van een specifieke sneltoets voor scrollbalken (zoals Shift+klik), het ecosysteem zo gefragmenteerd is geraakt dat men er niet eens meer op kan vertrouwen dat deze functioneert.