Chromium Code Reviews| Index: chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js |
| diff --git a/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js b/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js |
| index 9d411ff0083c7c00b9bd9e5d6d946e7d2ad11289..0505cb8a2112bf8be0d59ddcb1b94b6bbcacdd10 100644 |
| --- a/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js |
| +++ b/chrome/browser/resources/chromeos/chromevox/braille/braille_key_types.js |
| @@ -94,6 +94,88 @@ cvox.BrailleKeyEvent.keyCodeToCharValue = function(keyCode) { |
| return SPECIAL_CODES[keyCode] || keyCode.charCodeAt(0); |
| }; |
| +/* |
| + * Note: Some of the below mappings contain raw braille dot |
| + * patterns. These are written out in binary form to make clear |
| + * exactly what dots in the braille cell make up the pattern. The |
| + * braille cell is arranged in a 2 by 4 dot grid with each dot |
| + * assigned a number from 1-8. |
| + * 1 4 |
| + * 2 5 |
| + * 3 6 |
| + * 7 8 |
| + * |
| + * In binary form, the dot number minus 1 maps to the bit position |
| + * (from right to left). |
| + * For example, dots 1-6-7 would be |
| + * 0b1100001 |
| + */ |
| + |
| +/** |
| + * Maps a braille pattern to a standard key code. |
| + * @type {!Object<number, string>} |
| + */ |
| +cvox.BrailleKeyEvent.brailleDotsToStandardKeyCode = { |
| + 0b1: 'A', |
| + 0b11: 'B', |
| + 0b1001: 'C', |
| + 0b11001: 'D', |
| + 0b10001: 'E', |
| + 0b1011: 'F', |
| + 0b11011: 'G', |
| + 0b10011: 'H', |
| + 0b1010: 'I', |
|
dmazzoni
2017/04/17 04:53:25
nit: indent
David Tseng
2017/04/17 16:10:51
Done.
|
| + 0b11010: 'J', |
| + 0b101: 'K', |
| + 0b111: 'L', |
| + 0b1101: 'M', |
| + 0b11101: 'N', |
| + 0b10101: 'O', |
| + 0b1111: 'P', |
| + 0b11111: 'Q', |
| + 0b10111: 'R', |
| + 0b1110: 'S', |
| + 0b11110: 'T', |
| + 0b100101: 'U', |
| + 0b100111: 'V', |
| + 0b111010: 'W', |
| + 0b101101: 'X', |
| + 0b111101: 'Y', |
|
dmazzoni
2017/04/17 04:53:25
nit: indent
David Tseng
2017/04/17 16:10:51
Done.
|
| + 0b110101: 'Z', |
| + 0b110100: '0', |
| + 0b10: '1', |
| + 0b110: '2', |
| + 0b10010: '3', |
| + 0b110010: '4', |
| + 0b100010: '5', |
| + 0b10110: '6', |
| + 0b110110: '7', |
| + 0b100110: '8', |
| + 0b10100: '9' |
| +}; |
| + |
| +/** |
| + * Maps a braille chord pattern to a standard key code. |
| + * @type {!Object<number, string>} |
| + */ |
| +cvox.BrailleKeyEvent.brailleChordsToStandardKeyCode = { |
| + 0b1000000: 'Backspace', |
| + 0b10100: 'Tab', |
| + 0b110101: 'Escape', |
| + 0b101000: 'Enter' |
| +}; |
| + |
| +/** |
| + * Maps a braille dot chord pattern to standard key modifiers. |
| + */ |
| +cvox.BrailleKeyEvent.brailleDotsToModifiers = { |
| + 0b010010: {ctrlKey: true}, |
| + 0b100100: {altKey: true}, |
| + 0b1000100: {shiftKey: true}, |
| + 0b1010010: {ctrlKey: true, shiftKey: true}, |
|
dmazzoni
2017/04/17 04:53:25
Can you sequence ctrl and shift instead? I wonder
David Tseng
2017/04/17 16:10:51
I do think 2-5, 3-6 are pretty nice chords and sho
|
| + 0b1100100: {altKey: true, shiftKey: true} |
| +}; |
| + |
| /** |
| * Map from DOM level 4 key codes to legacy numeric key codes. |
| @@ -113,11 +195,23 @@ cvox.BrailleKeyEvent.legacyKeyCodeMap_ = { |
| 'PageDown': 34, |
| 'End': 35, |
| 'Insert': 45, |
| - 'Delete': 46 |
| + 'Delete': 46, |
| + 'AudioVolumeDown': 174, |
| + 'AudioVolumeUp': 175 |
| }; |
| -// Add the F1 to F12 keys. |
| (function() { |
| + // Add 0-9. |
| + for (var i = '0'.charCodeAt(0); i < '9'.charCodeAt(0); ++i) { |
| + cvox.BrailleKeyEvent.legacyKeyCodeMap_[String.fromCharCode(i)] = i; |
| + } |
| + |
| + // Add A-Z. |
| + for (var i = 'A'.charCodeAt(0); i < 'Z'.charCodeAt(0); ++i) { |
| + cvox.BrailleKeyEvent.legacyKeyCodeMap_[String.fromCharCode(i)] = i; |
| + } |
| + |
| + // Add the F1 to F12 keys. |
| for (var i = 0; i < 12; ++i) { |
| cvox.BrailleKeyEvent.legacyKeyCodeMap_['F' + (i + 1)] = 112 + i; |
| } |