Včera som mal jednoduchý plán – naprogramovať podporu definície klávesových skratiek pre jeden nemenovaný projekt. Zložitosť riešenia tohto problému bola však o obrovský kus ďalej od mojho odhadu.
Základ problému je v konverzii a rôznorodosti rozložení kláves.
Určite ste si všimli že niektoré aplikácie zobrazujú klávesové skratky
„poslovenštené“. Teda tak, že reprezentujú klávesy na
slovenskej klávesnici: z Ctrl+Shift+; sa stane
Ctrl+Shift+ô. Čo je celkom prijateľné iba ak užívateľ nie je
zvyknutý na U.S. rozloženie klávesnice.
U.S. layout používajú najčastejšie práve programátori, pre ktorých je nemenovaný program určený. Výskumy usability od Microsoftu ukázali, že užívatelia uprednostňujú používanie skratiek bez ohľadu na layout klávesnice. Napríklad:
Na francúzskej klávesnici sú klávesy A, Z vvymenené za Q a W.
Ctrl+A je klávesa bežne známa ako výber všetkého,
Ctrl+Z je zase tzv. Undo. Francúzi, bez ohľadu na ich odlišnú
klávesnicu, uprednostňujú klávesy na rovnakej pozícii, teda pri pohľade na
ich
klávesnicu Ctrl-Q a Ctrl-W.
Ďalším vážnym problémom je, že ak by klávesové skratky reprezentovali to čo skutočne má užívateľ na klávesnici, porušila by sa tým ergonómia. Aplikácia musí túto špecialitku rešpektovať. Teda, musím ju rešpektovať a implementovať ja. Fňuk.
Situácia je ešte zábavnejšia ak chcete načítať klávesové skratky z textového súboru, ktorý je súčasťou rozširujúceho balíčka, ktorý môže pochádzať odkiaľkoľvek (a vy neviete odkiaľ). Windows API síce má nádherné metódy na konverzie reťazca do kódu klávesy a naopak, ale všetko závisí od konfigurácie systému a teda sa ľahko môže stať, že nejaký terorista principiálne nemá nainštalovaný U.S. layout a počká si ma niekde s tikajúcim balíčkom.
Týmto vzniká niekoľko veľmi zásadných koncepčných otázok. Odpoveď však často môže dať iba užívateľ sám. Tým pádom mi UI nabublalo o ďalšie dialógové okno s preferenciami pre klávesové skratky, blah. A to som si myslel aké primitívne to bude…

Sleduj všetky zápisy pomocou RSS
Sleduj všetky komentáre pomocou RSS
Ty vole, to som nevedel že žabožrúti majú vlastný layout :)