Vad är skillnaden mellan snabbtangenter och acceleratorer?

Snabbtangenter (kallas även "hotkeys") har till syfte att gör det lättare att navigera runt i användargränssnittet med tangentbordet. Detta är viktigt för användare som inte kan eller vill använda musen.

Snabbtangenter definieras i enskilda kontroller, och att trycka ner en snabbtangent är jämförbart med att ge fokus till eller klicka på den kontroll där snabbtangenten är definierad. Exakt vad som sker beror på vilken slags kontroll det rör sig om.

Snabbtangenter kan nås genom att man trycker ner Alt-tangenten följt av den tangent som motsvarar den kontroll man vill aktivera. Alt+A brukar öppna menyn Arkiv, för Arkiv har snabbtangenten A. Alt+N kan ta dig till nästa sida i en guide, för knappen Nästa har snabbtangenten N. Dock, om det fönster som har fokus inte har någon aktiverad och synlig kontroll med t.ex. Alt+A, då sker ingenting när man trycker ner den tangentkombinationen.

Snabbtangenter inkodas i kontrollernas text genom att utvecklaren eller lokaliseraren använder ett &-tecken före den bokstav som ska fungera som snabbtangent. Menyalternativet "Arkiv" har alltså texten "&Arkiv" och knappen "Verkställ" har texten "&Verkställ". Snabbtangenter för ett givet alternativ brukar skilja sig markant mellan olika språkversioner, eftersom det inte finns någon garanti för att min översättning ens innehåller samma bokstav som används som snabbtangent i källtexten. "&Verkställ" är på engelska "&Apply", "&Arkiv" är "&File".

Som standard visas inte vilken snabbtangent som har definierats för olika kontroller, för tydligen har forskning visat att användare blir förvirrade när de ser att vissa bokstäver är understrukna. Den som vill kan dock ändra en inställning i Windows så att snabbtangenten alltid visas - Michael Kaplan förklarar hur på https://blogs.msdn.com/michkap/archive/2006/09/28/774885.aspx.

Acceleratorer å andra sidan har till syfte att låta användare direkt nå vanliga eller viktiga funktioner utan att alls behöva navigera runt i användargränssnittet.

Acceleratorer brukar inte vara direkt bundna till enskilda kontroller och de definieras i Win32-filer genom en acceleratortabell som är helt separat från användargränssnittet. Acceleratorer brukar nås genom att man trycker ner någon F-tangent eller en kombination av Ctrl och någon eller några andra tangenter. 

Acceleratorer är inte direkt bundna till en viss översättning så de har inte samma behov av att skilja sig mellan olika språkversioner. Ctrl+O brukar betyda "Öppna" oavsett språkversion. Vissa undantag finns dock. Ett svenskspecifikt exempel är att man för länge sedan beslutade sig för att "översätta" Ctrl+B (bold) till Ctrl+F (fet) och Ctrl+I (italic) till Ctrl+K (kursiv). Personligen tycker jag att det var ett misstag, men nu är det som det är...

Acceleratorer är inte direkt bundna till några kontroller, men givetvis är det käckt om det finns någon text som låter användaren upptäcka vilka acceleratorer som är tillgängliga. Det är därför vanligt att någon annan kontroll - t.ex. ett alternativ i en meny - visar vilken accelerator som kan användas för ett visst kommando. I menyer görs detta genom att menyns text och acceleratorn avgränsas med en tabb. Menykommandot kan givetvis även ha en snabbtangent, så det här är en vanlig syn: "&Öppna...\tCtrl+O" (\t betyder tabb)

Användning

De vanligaste funktionerna kan oftast nås på flera sätt. I Anteckningar kan man öppna en fil genom att:
1) Klicka på menyn Arkiv och sedan på alternativet Öppna
2) Trycka ner snabbtangenten Alt+A för att öppna &Arkiv-menyn och sedan trycka ner Ö för att välja alternativet &Öppna
3) Trycka ner acceleratorn Ctrl+O

Detta är bara en kortfattad förklaring av normalfallen. Mycket kan skilja sig i specialfall - man kan t.ex. använda en accelerator så att användaren uppfattar den som en snabbtangent; Winforms-program implementerar acceleratorer annorlunda än Win32-program; jag vill inte ens tänka på HTML... Syftet här är bara att ge bakgrund inför nästa bloggpost.