HTML Virtual Keyboard Interface Script / User Javascript
Copyright (c) 2024 - GreyWyvern
Full Changelog
-----------------------------------------------------------------------
Version 1.54 - November 26, 2024
- Virtual keyboard no longer works on inputs marked as "readonly"
- Removed support for all versions of Internet Explorer
- Removed support for Opera versions <= 12
- Updated Korean keyboard layout
- Added Tajik and Uyghur keyboard layouts
- Added Korean Jamo to Hangul input algorithm (VitaJane and Billy)
- Add button allowing dragging of the keyboard; can be disabled
(VitaJane and Billy)
- Second click on Keyboard Layout Selector will swap keyboard titles
to their English names and sort on it
Version 1.53 - December 27, 2022
- Prevent showing mobile keyboard (if possible) when Virtual Keyboard
is attached
- Font size is now rem unit based instead of px based so it should
scale better.
Version 1.52 - December 17, 2022
- More robust code for finding the keyboard image in the same
directory as keyboard.js
Version 1.51 - October 13, 2022
- Add Numpad-only display support for inputs of type="number" or
class="keyboardInputNumbersOnly"
Version 1.50 - October 6, 2022
- Add VKI_flashPassword: Flash last character of a password
Version 1.49 - November 8, 2011
- Don't display language drop-down if only one keyboard available
Version 1.48 - September 30, 2011
- Fix for Firefox 6 & 7 styling issue (userscript only)
Version 1.47 - April 18, 2011
- Clicking focused input opens keyboard in imageless mode
- Add option to disable submitting form when pressing Enter (tommarracci)
Version 1.46 - March 30, 2011
- Added Yiddish (Yidish Lebt) keyboard layout
- Fix and improve keyboard display in imageless mode
Version 1.45 - February 15, 2011
- Added activeTab option - Tab key advances to next form input
- Fix for backwards character input in IE9
- User script version no longer hides static version keyboard icon
- Added Yiddish keyboard layout
- Added Urdu Phonetic keyboard layout
Version 1.44 - December 24, 2010
- Fixed keyboard positioning for inputs within scrollable areas
- Fixed language adaptation selecting incorrect keyboards
- Added support for wider array of ISO language code formats
- Prevent entire script from being run twice on page load
- Partial fix for Firefox textarea scrolling bugs
Version 1.43 - October 29, 2010
- Added Dingbats and Misc. Symbols layouts
- Keyboard closes if a non-active form element is clicked
- Added dropdown indicator arrow beside layout name
Version 1.42 - October 27, 2010
- Added 36 new keyboard layouts (87 total):
Albanian, Azerbaijani Cyrillic, Azerbaijani Latin, Canadian
French, Chinese Bopomofo IME, Chinese Cangjie IME, Devanagari,
Divehi, Estonian, Faeroese, Finnish, Georgian, Gujarati,
Icelandic, Irish/Gaelic, Kannada, Korean, Kyrgyz, Latvian,
Malayalam, Maltese 48, Marathi, Mongolian Cyrillic, Polish
(214), Punjabi (Gurmukhi), Swiss French, Swiss German, Syriac,
Tamil, Tatar, Telugu, Thai Kedmanee, Thai Pattachote, Urdu,
Uzbek Cyrillic, Vietnamese
- Updated keyboard layout and dead key object format
- Number Pad is now a collapsible extension of the keyboard instead of its own layout
- New selection interface for keyboard layouts
- New button interface for keyboard size
- Click outside the keyboard or input to close
Version 1.41 - October 21, 2010
- Added Bosnian keyboard layout
- Added Croatian keyboard layout
- Added Khmer keyboard layout
- Added NBSP and ZWSP symbol keys
- Fix double-spaced symbol keys in IE
- Clicking Enter on text/password input causes form submission if form does not contain a submit button
- Clear any "suggestion" dropdowns when opening the keyboard
- Allow hiding the dead keys checkbox (always on or always off)
Version 1.40 - September 30, 2010
- Fix issue with spaced-out comma keys
- Added a bit more cascade-prevention CSS
- Clear Shift/Alt keys when Caps/AltLk key is pressed
- Fix double-click bugginess in Firefox
Version 1.39 - September 7, 2010
- Assamese keyboard layout added
- Kurdish keyboard layout added
- Dari keyboard layout added
Version 1.38 - August 19, 2010
- Restore correct WebKit detection
- Fix for uncloseable keyboard in IE8
- Prevent outside width and height CSS rules from bleeding into keyboard
- Tightened rules for readonly inputs, fixes WebKit Bksp issue
Version 1.37 - July 28, 2010
- Fix user-specified default sizing
- Added imageless mode, display keyboard on focus (static version only)
- Minor update to Pashto keyboard layout
- Added Bulgarian BDS keyboard layout
Version 1.36 - June 2, 2010
- Add user resize control
- Automatically choose keyboard layout based on lang attribute
Version 1.35 - May 25, 2010
- Edit CSS to make it much easier to resize the keyboard
Version 1.34 - May 21, 2010
- Added Basic Japanese Hiragana/Katakana keyboard layout
- Visual style changes, useability changes
- Dead key fixes for Opera style reflow bugs
- Added simple i18n object to user config
Version 1.33 - May 10, 2010
- Automatically reposition keyboard if it is offscreen
- Remove manual position switcher function
- Add -moz- and -webkit- properties for border-radius and box-shadow
Version 1.32 - December 31, 2009
- Added keyboard position switch function
- Added some CSS3 styles
- Added Pashto keyboard layout
- Added Macedonian keyboard layout
- Added Ukrainian keyboard layout
Version 1.31 - October 15, 2009
- Armenian West/East keyboard layouts added
Version 1.30 - October 9, 2009
- Added means to provide alternate display characters
- Bengali keyboard layout added
- Hindi keyboard layout added
Version 1.29 - September 21, 2009
- Split and corrected Portuguese keyboard layout (Portugal & Brazil)
- Added "L with stroke" dead key
Version 1.28 - July 17, 2009
- Fixed Opera issue with some special characters in the comments
- Added available AltGr Lock (AltLk) functionality
- Changed clickless setup (0 = disabled, > 0 = delay in ms)
- Macron deadkey added
- Kazakh keyboard layout added
- Pinyin keyboard layout added
Version 1.27 - June 11, 2009
- Danish keyboard layout added
Version 1.26 - June 5, 2009
- Slovak keyboard layout added
Version 1.25 - June 3, 2009
- Fix IE6 warning dialogue when used on https:// pages (Tomas Sergeant)
- Place keyboard icon to the left of rtl input elements
Version 1.24 - May 12, 2009
- Belarusian, Serbian Cyrillic and Serbian Latin keyboard layouts added
- Fix for maxlength attribute on textareas
Version 1.23 - April 22, 2009
- Bulgarian keyboard layout added
Version 1.22 - March 30, 2009
- Added support for max-length on inputs (Olivier Désormeaux)
- Downgrade comma-below forms of S and T to cedilla for IE < 8
- Change exposed attachment function name to VKI_attach
- Exposed keyboard close function as VKI_close
- No longer expose any functions in the userscript version
Version 1.21 - March 10, 2009
- Swedish keyboard layout added
- Corrected Czech keyboard layout
Version 1.20 - March 2, 2009
- Fix keyboard positioning bug in IE6/IE7
Version 1.19 - February 17, 2009
- Change some variable and function names to prevent UserScript/static-version conflicts
- Fix bug if input's id is changed after applying keyboard
- Expose keyboard attach function via VKI_attachKeyboardInterface
- Attach keyboard to inputs created after document load on double-click
Version 1.18 - January 30, 2009
- Added clickless interface option; hover keys to activate them
- Romanian keyboard layout added
Version 1.17 - January 23, 2009
- Changed root ID to prevent static/userscript CSS conflicts
- Corrected some hover state CSS quirks
Version 1.16 - January 20, 2009
- Add option to clear password inputs on focus
- Add option to prevent display of the version number
Version 1.15 - January 15, 2009
- Fix virtual keyboard edit of readonly inputs in Safari/Chrome
- Add some "basic" styles to prevent document CSS seepage
Version 1.14 - January 14, 2009
- More fixes for IE readonly input cases (Nuno Pereira)
- Setting dead keys to On by default now works in IE
- Various IE fixes to prevent unwanted cursor movement
- Fixed "Illegal value" error in Firefox
- Moved "Dead keys: On/Off" text to title of checkbox
Version 1.13 - January 13, 2009
- Fix virtual keyboard edit of readonly inputs in IE
- Czech keyboard layout added
Version 1.12 - December 16, 2008
- Farsi (Persian) keyboard layout added
- Ensure keyboard is displayed in a LtR format (Kaveh Bakhtiyari)
- Changed default keyboard to US Int'l
Version 1.11 - July 18, 2008
- Position:fixed tweaks for browser updates since first release
- Fix for IE6 bug with covering select elements
- Burmese keyboard layout added
Version 1.10 - April 14, 2008
- Slovenian keyboard layout added
Version 1.9 - April 3, 2008
- Hungarian keyboard layout added
Version 1.8 - March 31, 2008
- Performance tweaks
Version 1.7 - March 27, 2008
- Arabic keyboard layout added
Version 1.6 - January 16, 2008
- Hebrew keyboard layout added
Version 1.5 - January 7, 2008
- Italian and Spanish (Spain) keyboard layouts added
Version 1.4a - October 15, 2007
- Keyboard is fully removed from document when hidden
Version 1.4 - August 1, 2007
- Simplified layout syntax a bit
- Added version number to lower right of interface
- Various other small bug fixes
Version 1.3 - July 30, 2007
- Interaction styling changes (Alt, AltGr, Shift)
- Justified keys - last key expands to fit width
- If no dead keys in layout, dead key checkbox is hidden
- Option to disable dead keys per keyboard
- Added the Number Pad layout
- Pulled all variations of script up to same version number
Keyboard Credits
-----------------------------------------------------------------------
- Korean, Tajik & Uyghur keyboard layouts by Billy & VitaJane
- Yiddish (Yidish Lebt) keyboard layout by Simche Taub (jidysz.net)
- Urdu Phonetic keyboard layout by Khalid Malik
- Yiddish keyboard layout by Helmut Wollmersdorfer
- Khmer keyboard layout by Sovann Heng (km-kh.com)
- Dari keyboard layout by Saif Fazel
- Kurdish keyboard layout by Ara Qadir
- Assamese keyboard layout by Kanchan Gogoi
- Bulgarian BDS keyboard layout by Milen Georgiev
- Basic Japanese Hiragana/Katakana keyboard layout by Damjan
- Ukrainian keyboard layout by Dmitry Nikitin
- Macedonian keyboard layout by Damjan Dimitrioski
- Pashto keyboard layout by Ahmad Wali Achakzai (qamosona.com)
- Armenian Eastern and Western keyboard layouts by Hayastan Project (www.hayastan.co.uk)
- Pinyin keyboard layout from a collaboration with Lou Winklemann
- Kazakh keyboard layout by Alex Madyankin
- Danish keyboard layout by Verner Kjærsgaard
- Slovak keyboard layout by Daniel Lara (www.learningslovak.com)
- Belarusian, Serbian Cyrillic and Serbian Latin keyboard layouts by Evgeniy Titov
- Bulgarian Phonetic keyboard layout by Samuil Gospodinov
- Swedish keyboard layout by Håkan Sandberg
- Romanian keyboard layout by Aurel
- Farsi (Persian) keyboard layout by Kaveh Bakhtiyari (www.bakhtiyari.com)
- Burmese keyboard layout by Cetanapa
- Slovenian keyboard layout by Miran Zeljko
- Hungarian keyboard layout by Antal Sall 'Hiromacu'
- Arabic keyboard layout by Srinivas Reddy
- Italian and Spanish (Spain) keyboard layouts by dictionarist.com
- Lithuanian and Russian keyboard layouts by Ramunas
- German keyboard layout by QuHno
- French keyboard layout by Hidden Evil
- Polish Programmers layout by moose
- Turkish keyboard layouts by offcu
- Dutch and US Int'l keyboard layouts by jerone