GUI's zouden volledig via het toetsenbord bedienbaar moeten zijn

Vorige week stuitte ik op een bericht op Hacker News waarin applicatieontwikkelaars werden aangemoedigd om te stoppen met het maken van terminal user interfaces (TUI's)¹ en zich in plaats daarvan te concentreren op graphical user interfaces (GUI's). Het bericht haalde de voorpagina van HN en ontketende een levendig debat in de reacties.

Ik denk dat er aan beide kanten van het debat gelijk is.

Aan de ene kant begrijp ik de pro-GUI-argumenten van de auteur. In theorie zijn de mogelijkheden van GUI-applicatieframeworks een superset van de mogelijkheden van hun TUI-tegenhangers, waardoor ze verkozen zouden moeten worden.

Aan de andere kant waardeer ik als intensieve terminal-gebruiker alle TUI's die me in staat stellen om in de terminal te "blijven" en al mijn behoeften te vervullen.

De misvatting over keyboard-navigatie

Ik wil me echter verzetten tegen een terugkerend argument in het voordeel van TUI's dat naar mijn mening geen solide basis heeft². Om verschillende commenters parafraseren: TUI's zouden verkozen moeten worden omdat ze volledig via het toetsenbord worden bediend (keyboard-driven).

Hoewel het waar is dat wanneer je willekeurig een GUI- en een TUI-applicatie kiest, de laatste waarschijnlijker volledig via het toetsenbord bedienbaar is, slaat dit de balans niet door in het voordeel van het ontwikkelen van TUI's boven GUI's³. Wat het wel doet, is de tekortkomingen van toetsenbordnavigatie in veel GUI-applicaties highlighten.

Er is niets dat een GUI verhindert om volledig via het toetsenbord bedienbaar te zijn⁴, net zoals — of zelfs beter dan — een TUI.

Richtlijnen en praktijk

Sterker nog, veel richtlijnen voor GUI-frameworks moedigen ontwikkelaars expliciet aan om ondersteuning te bieden voor navigatie via het toetsenbord die de volledige functionaliteit van de applicatie beslaat.

Zo stellen de GNOME Human Interface Guidelines dat:

  • net zoals het mogelijk moet zijn om elke actie met een aanwijsapparaat uit te voeren, elke actie ook via het toetsenbord mogelijk moet zijn;
  • het mogelijk moet zijn om je door elke parte van de gebruikersinterface te bewegen en ermee te communiceren met behulp van het toetsenbord.

Dit spreekt mij als gebruiker erg aan. Het vermogen om intuïtief — en voorspelbaar — door een GUI-applicatie te navigeren met alleen mijn toetsenbord, geeft me meer stimulans om deze te kiezen boven alternatieven.

Wetende dat dit zo is, moet ik, wanneer ik mijn pet als ontwikkelaar opzet, ervoor zorgen dat mijn applicaties toetsenbordvriendelijk zijn. Voor mijn allereerste GUI-applicatie, Klisi, heb ik tijd geïnvesteerd in het implementeren van toetsenbordcombinaties voor het volledige scala aan beschikbare acties.

Conclusie

Toetsenbordnavigatie is in de meeste gevallen niet zo moeilijk te realiseren en resulteert in een algeheel betere gebruikerservaring. Het is geen kwestie van haalbaarheid, maar een kwestie van wil van de applicatieontwikkelaar.

De conclusie is simpel: maak geen concessies aan de gebruikerservaring die je met je applicatie biedt. Streef ernaar deze zo intuïtief mogelijk te maken. Om dat doel te bereiken, mag volledige navigatie via het toetsenbord niet worden genegeerd.

***

Voetnoten ¹ Ook wel tekstgebaseerde gebruikersinterfaces. ² De oorspronkelijke auteur van het bericht vermeldt dit ook. ³ Er zijn andere, dwingender argumenten om de balans te doen doorslaan, zoals het gemak van draagbaarheid (portability). ⁴ Uiteraard blijft de behendigheid die via de muis wordt bereikt nog steeds gewenst — of zelfs vereist — voor sommige taken.