Keyboard Support

Contact and Search

Keyman.com Homepage

Header bottom

Keyman.com

On this page

KeymanWeb Version History

17.0.305 beta

Published 2024-04-10.

  • change(web): merges split async method in gesture engine (#11142)
  • fix(web): blocks nextLayer for keys quickly typed when multitapping to new layer when final tap is held (#11189)
  • refactor(web): OSK spacebar-label updates now managed by layer object (#11175)

17.0.304 beta

Published 2024-04-09.

  • fix(web): fix crash in nearest-key row lookup when touch moves out-of-bounds (#11178)

17.0.303 beta

Published 2024-04-05.

  • fix(common/models): suggestion stability after multiple whitespaces (#11164)

17.0.301 beta

Published 2024-04-03.

  • fix(web): key preview stickiness 🪠 (#10778)
  • fix(web): early gesture-match abort when unable to extend existing gestures 🪠 (#10836)
  • fix(web): infinite model-match replacement looping 🪠 (#10838)
  • fix(web): proper gesture-match sequencing 🪠 (#10840)
  • change(web): input-event sequentialization 🪠 (#10843)
  • fix(web): proper linkage of sources to events 🪠 (#10960)
  • change(web): reworks nearest-key detection to avoid layout reflow (#11129)

17.0.300 beta

Published 2024-04-02.

  • change(web): keyboard swaps keep original keyboards active until fully ready (#11108)

17.0.298 beta

Published 2024-03-29.

  • fix(web): prevent layer switch key from erasing selection (#11032)

17.0.286 beta

Published 2024-03-11.

  • chore(web): improve the clarity of hints on OSK for Android (#10971)

17.0.284 beta

Published 2024-03-07.

  • fix(web): globe key highlighting (#10932)
  • chore(web): updates mtnt model used by test page (#10935)

17.0.278 beta

Published 2024-02-28.

  • fix(web): Save context state on reset (#10869)

17.0.274 beta

Published 2024-02-22.

  • chore(web): proper reporting of errors from es5 KMW (#10807)

17.0.271 beta

Published 2024-02-19.

  • fix(web): sticky special-key highlighting (#10729)
  • fix(web): disables modipress for layer-switch keys with subkeys (#10745)
  • fix(web): missing null-guard for hardware keystrokes without active Keyman keyboard (#10740)
  • fix(web): handling of page-elements focused before engine initialization (#10744)

17.0.269 beta

Published 2024-02-15.

  • fix(web): corrects Android over-deletion of selected text, other context diffs involving selected text (#10662)
  • fix(web): disables banner interaction when suggestions are absent (#10695)
  • fix(web): longpress validation by base key, not current location (#10707)

17.0.266 alpha

Published 2024-02-13.

  • fix(web): prevent invalid longpress shortcut triggers (#10641)

17.0.264 alpha

Published 2024-02-09.

  • fix(web): banner robustness when touched 2+ times at once (#10672)

17.0.262 alpha

Published 2024-02-07.

  • fix(web): handling of backspaces when left-context is empty (#10584)
  • fix(web): banner scroll positioning after reversions (#10643)
  • chore(web): removes unused banner events (#10644)

17.0.261 alpha

Published 2024-02-06.

  • fix(web): app/webview sourcemap inlining (#10631)

17.0.258 alpha

Published 2024-02-01.

  • fix(web): app/webview control flow for initial layer (#10571)

17.0.257 alpha

Published 2024-01-31.

  • fix(web): OSK resource-loading promise's font-wait (#10506)
  • fix(web): documentation-keyboard font size, font scaling (#10507)
  • feat(web): testing page for font-load / key-scale interactions (#10534)
  • fix(web): proper await for special-osk font, use of it in key scaling (#10535)
  • fix(web): ensure use of actual key-cap / label font in key-scale ops (#10555)

17.0.253 alpha

Published 2024-01-26.

  • feat(web): keystroke pre-processing unit tests (#10464)
  • feat(web): key-event rule processing unit tests for mnemonic, KMW 1.0 keyboards (#10475)
  • fix(web): touch-layout fontsize property use (#10504)

17.0.252 alpha

Published 2024-01-25.

  • fix(web): banner suggestion resizing after device rotation (#10508)

17.0.250 alpha

Published 2024-01-23.

  • fix(web): osk responsiveness to held modifiers on legacy kbds (#10437)

17.0.249 alpha

Published 2024-01-22.

  • feat(web): suggestion banner UI enhancements - suggestion expanding + scrollable banner (#7934)
  • chore(web): worker sourcemap cleanup, mobile app webview sourcemap compat (#10413)

17.0.248 alpha

Published 2024-01-19.

  • fix(web): cancels active gestures on globe-key use (#10352)
  • fix(web): keyboard-documentation rendering mode (#10417)
  • fix(web): U_ key id -> text for all subkeys; is now preprocessed (#10434)
  • fix(web): bulk renderer interface for recent-version targeting keyboards (#10427)

17.0.246 alpha

Published 2024-01-17.

  • fix(web): Add null check for changing the keyboard during typing (#10346)
  • fix(web): right-flick gesture-preview positioning (#10406)

17.0.244 alpha

Published 2024-01-15.

  • fix(web): use KMW OSK font for "**" special-text in key hints (#10371)

17.0.243 alpha

Published 2024-01-12.

  • fix(web): prediction time-limiter issues, performance (#10330)

17.0.241 alpha

Published 2024-01-10.

  • chore(web): better logging for gesture-recognizer tools build script (#10329)

17.0.239 alpha

Published 2024-01-08.

  • chore(web): remove lm-worker Array.from polyfill and make Symbol polyfill conditional (#10255)
  • change(web): lm-worker bundling + wrapper script rework (#10264)
  • refactor(web): transformation of build-bundler into a common es-bundling command (#10265)
  • change(web): KeymanWeb bundler-script centralization (#10267)
  • feat(web): alternate artifact - es6-bundled Web (#10257)
  • feat(web): es6 artifact for app/webview (#10274)
  • fix(web): adds null-guard for longpress-key validation (#10299)
  • fix(web): special key highlighting when pressed (#10296)

17.0.234 alpha

Published 2023-12-20.

  • fix(web): default multitap logic for shift-layer shift multitaps (#10281)
  • fix(web): keyboard functionality on Android 5.0 / Chrome 35 (#10284)

17.0.233 alpha

Published 2023-12-19.

  • fix(web): unbreak some ts paths (#10279)

17.0.232 alpha

Published 2023-12-18.

  • feat(web): adds highlighting to BKSP while held (#10270)

17.0.231 alpha

Published 2023-12-15.

  • chore(web): Better match directory structure for headless engine tests (#10232)
  • fix(web): Fix types that listInputs and isKMWInput accept (#10233)
  • chore(web): Add unit tests for pageContextAttachment (#10250)

17.0.230 alpha

Published 2023-12-14.

  • fix(web): unit test for null-null keyboard switch event from #10245 (#10253)
  • fix(web): fixes android-webview emulation Web test page (#10238)
  • chore(web): Remove dead code (#10231)

17.0.226 alpha

Published 2023-12-07.

  • fix(web): accidental suggestion-banner retoggle when disabling predictions (#10014)
  • fix(web): Fix null error with legacy keyboards (#10141)

17.0.223 alpha

Published 2023-12-04.

  • chore(web): Add option to create test coverage report file (#10124)

17.0.221 alpha

Published 2023-12-01.

  • fix(web): Don't throw errors after detach (#10086)

17.0.219 alpha

Published 2023-11-29.

  • fix(web): Fix attachment-api tests (#10085)
  • fix(web): Also move source map (#10089)

17.0.216 alpha

Published 2023-11-23.

  • fix(web): app/webview did not clear deadkeys on context-reset (#10039)

17.0.215 alpha

Published 2023-11-22.

  • fix(web): fixes OSK viewport scaling on iOS devices (#10035)

17.0.212 alpha

Published 2023-11-16.

  • chore(web): splits banner.ts into separate files per banner type (#9987)
  • refactor(web): inactive banner management (#9988)

17.0.211 alpha

Published 2023-11-15.

  • chore(web,developer): Move keymanweb-osk.ttf to common/resources (#9993)

17.0.209 alpha

Published 2023-11-13.

  • fix(web): Increase size of spacebar text (#9954)

17.0.208 alpha

Published 2023-11-08.

  • fix(web): Fix clearing of deadkeys (#9944)
  • fix(web): Ignore osk-always-visible on non-desktop devices (#9951)

17.0.207 alpha

Published 2023-11-07.

  • refactor(web): Link to index.html in test pages (#9953)

17.0.204 alpha

Published 2023-11-02.

  • fix(web): fixes doc-kbd display of default layer when it's not defined first (#9891)

17.0.197 alpha

Published 2023-10-24.

  • fix(web): proper disabling of prediction timeout for prediction unit tests (#9835)

17.0.196 alpha

Published 2023-10-20.

  • fix(web): enhances integrated test stability (#9718)

17.0.194 alpha

Published 2023-10-18.

  • fix(web): fixes touch form-factor default kbd on cookieless keymanweb.com page load (#9786)

17.0.190 alpha

Published 2023-10-12.

  • chore(web): web build streamlining (#9743)

17.0.185 alpha

Published 2023-10-03.

  • chore(web): Add non-printing characters to the OSK (#9547)

17.0.184 alpha

Published 2023-10-02.

  • fix(web): fixes toolbar refocus timing after a keyboard change (#9618)

17.0.183 alpha

Published 2023-09-29.

  • feat(web): browser-KMW support for default subkeys (#9496)

17.0.182 alpha

Published 2023-09-28.

  • chore(web): builds that output to web/build/publish should also clean it (#9613)

17.0.163 alpha

Published 2023-08-21.

  • chore(web): Update keymanweb-osk.ttf to v. 3.0 (#9469)

17.0.154 alpha

Published 2023-08-04.

  • fix(web): forgot to target es5 when minifying polyfilled worker (#9409)

17.0.153 alpha

Published 2023-08-03.

  • fix(web): maintenance of focus when changing keyboard via Toolbar UI (#9397)

17.0.145 alpha

Published 2023-07-21.

  • fix(web): allows registering precached keyboards (#9304)

17.0.137 alpha

Published 2023-07-10.

  • feat(web): logs enhanced debug info for error reports (#9217)
  • fix(web): silences low-priority warning that shows up in iOS kbd init (#9206)

17.0.135 alpha

Published 2023-07-06.

  • fix(web): sentry sourcemapping round 2 - yesterday's 'fix' unfortunately doesn't upload the maps (#9199)
  • chore(web): normalizes sourcemap paths for cleaner Sentry reports (#9200)

17.0.134 alpha

Published 2023-07-05.

  • fix(web): fixes up Web's InlinedOSK manual test page (#9175)
  • fix(web): re-establishes web srcmap uploading (#9179)

17.0.131 alpha

Published 2023-06-27.

  • fix(web): fixes Web build zip artifact construction (#9096)

17.0.91 alpha

Published 2023-04-20.

  • chore(web): sets kmc-model as dependency of input-processor test action (#8629)

17.0.69 alpha

Published 2023-03-16.

  • chore(web): Cleanup build echo (#8446)

17.0.63 alpha

Published 2023-03-09.

  • fix(web): --no-minify, not --skip-minify (#8394)

17.0.59 alpha

Published 2023-03-01.

  • chore(web): fixup dependencies in web build script (#8332)

17.0.52 alpha

Published 2023-02-20.

  • chore(web): minor cleanup of web/build.sh (#8254)
  • fix(web): --no-minify, not --skip-minify (#8264)
  • chore(web): Actually skip browser-stack for non-web builds (#8266)

17.0.41 alpha

Published 2023-02-02.

  • chore(web): main web build & test script rework to our common script format + nomenclature (#7474)
  • change(web): conversion to standard filesystem layout: source -> src, intermediate + release -> build (#7513)
  • change(web): conversion to standard filesystem layout: testing -> src/test/manual, unit_tests -> src/test/auto (#7515)
  • change(web): conversion to standard filesystem layout: tools -> src/tools (#7556)
  • chore(web): updates build product references, extracts CI test-build scripts (#7831)
  • feat(web): implements shell scripting for CI release-build configurations (#8001)

17.0.32 alpha

Published 2023-01-20.

  • docs(common/resources): Update configure step in Docker readme (#8034)

17.0.24 alpha

Published 2023-01-06.

  • chore(common/resources): Add Docker readme (#7980)

16.0.145 stable

Published 2024-02-01.

  • fix(web): Fix null error with legacy keyboards (#10177)

16.0.143 stable

Published 2023-11-22.

  • fix(web): fixes doc-kbd display of default layer when it's not defined first (#9892)

16.0.114 beta

Published 2022-11-28.

  • fix(web): locks page scroll when scrolling lang menu (#7790)

16.0.112 beta

Published 2022-11-25.

  • fix(web): unit test breakages (#7797)

16.0.110 beta

Published 2022-11-23.

  • fix(web): inferred key text + spacebar caption scaling (#7741)
  • feat(web): re-implementation of introductory globe-key help bubble (#7612)

16.0.108 beta

Published 2022-11-21.

  • feat(common/models): directional quote insensitivity (#7767)

16.0.107 beta

Published 2022-11-18.

  • fix(web): documentation keyboard style application + layout (#7694)

16.0.100 beta

Published 2022-11-10.

  • fix(web): Add additional checks on className.indexOf (#7662)

16.0.99 beta

Published 2022-11-09.

  • fix(web): Add polyfill for Array.includes() (#7646)
  • fix(web): Add polyfill for Array.findIndex() (#7652)

16.0.98 beta

Published 2022-11-08.

  • fix(web): Handle undefined keyId in multi-tap (#7648)
  • fix(web): avoid reset for touch system keyboard (#7638)

16.0.96 beta

Published 2022-11-03.

  • feat(web): Custom layer targets for Shift double-tap (#7608)

16.0.92 alpha

Published 2022-10-31.

  • change(common/models): prevent integration test flakiness due to prediction-search timeouts (#7571)
  • fix(web): bulk renderer update (#7516)

16.0.91 alpha

Published 2022-10-28.

  • fix(web): model language ids now case-insensitive (#7557)

16.0.89 alpha

Published 2022-10-26.

  • feat(web): keyboard layout spec now allows numeric width, pad, sp (#7486)
  • chore(web): KMW dev-tools reorganization, cleanup, script updates (#7463)
  • fix(web): allow isChiral() to accept string name parameter of keyboard (#7544)
  • fix(web): ensures keyboard does not change underneath OSK keystroke (#7543)

16.0.87 alpha

Published 2022-10-24.

  • fix(web): touch-platform language menu initial scrolling + index scrolling (#7488)

16.0.86 alpha

Published 2022-10-21.

  • change(web): removes unused config, help buttons from OSK (#7484)

16.0.82 alpha

Published 2022-10-17.

  • change(web): now utilizes 'inputMode="none"' on supported touch devices (#7343)
  • chore(web): drops alignInputs, hideInputs (#7360)
  • fix(web): better element inputmode management (#7395)

16.0.79 alpha

Published 2022-10-13.

  • chore(common/models, web): more script updates (#7392)

16.0.77 alpha

Published 2022-10-10.

  • fix(web): possible error on change of context to a contextEditable (#7359)
  • chore(web): unit test polishing pass (#7381)

16.0.72 alpha

Published 2022-09-30.

  • fix(web): Only unhighlight suggestion if there's a pending one (#7383)

16.0.71 alpha

Published 2022-09-29.

  • fix(web): Update spacebar caption when refreshing layout (#7348)
  • fix(common/web): mock deadkey handling after rules manipulating context (#7345)

16.0.69 alpha

Published 2022-09-21.

  • refactor(common/web): reworks low-level module build scripts ️ (#7319)

16.0.68 alpha

Published 2022-09-20.

  • chore(web): update got dependency for regression tests (#7315)

16.0.67 alpha

Published 2022-09-19.

  • fix(common/models): blocks full-text "corrections" ️ (#7241)
  • change(web): better fat-finger key weighting ️ (#7242)
  • fix(web): fixes unintended auto-acceptance of suggestion after reverting (#7305)
  • feat(common/models): wordbreaker customization (#7279)
  • fix(common/models): fixes reference dropped by git merge (#7313)

16.0.64 alpha

Published 2022-09-15.

  • fix(common/models): fixes quote-adjacent pred-text suggestions (#7205)
  • fix(common/models): max prediction wait check (#7290)

16.0.61 alpha

Published 2022-09-12.

  • chore(web): disable browserstack on non-web-specific builds (#7260)

16.0.60 alpha

Published 2022-09-10.

  • fix(web): enhanced timer for prediction algorithm (#7037)

16.0.58 alpha

Published 2022-09-08.

  • fix(common/models): reconnects unit tests for worker-internal submodules (#7215)
  • feat(common/models): extra Unicode-based wordbreaker unit tests (#7217)

16.0.48 alpha

Published 2022-08-16.

  • fix(web): button, float init timer cleanup (#7036)

16.0.43 alpha

Published 2022-08-05.

  • chore(web): centralizes web-based modules' CI unit test configurations (#7024)
  • refactor(web): converts test_utils funcs to Promise use (#7027)
  • change(web): rotation polish - OSK reload no longer needed ️ (#6787)
  • change(web): updates mobile screen dimension detection code ️ (#6979)

16.0.34 alpha

Published 2022-07-15.

  • fix(web): postkeystroke processing should ignore key-event source (#6901)
  • fix(web): layer-setting ops should not trigger for hardware keystroke processing ️ (#6902)
  • chore(web): remove invalid warning msg (#6950)

16.0.30 alpha

Published 2022-07-11.

  • fix(web): maps touch-layout chiral alt, ctrl to non-chiral when non-chiral keyboard is active (#6808)

16.0.29 alpha

Published 2022-07-08.

  • fix(web): ncaps rules not matching on touch (#6911)

16.0.27 alpha

Published 2022-07-07.

  • fix(web): improve console.error() reporting (#6890)

16.0.25 alpha

Published 2022-07-05.

  • chore(web): update readme (#6891)

16.0.23 alpha

Published 2022-06-29.

  • fix(web): clears repeating bksp on keyboard reload ️ (#6786)
  • fix(web): null-guard for refreshLayout (#6854)

16.0.20 alpha

Published 2022-06-26.

  • chore(web): shorten check/web/file-size check message (#6780)

16.0.19 alpha

Published 2022-06-24.

  • change(web): drops old IE-related handling code (#6557)

16.0.17 alpha

Published 2022-06-22.

  • chore(web): updates error-reporting lib uploader (#6818)
  • fix(web): fixes doc-keyboard generation (#6793)

16.0.16 alpha

Published 2022-06-21.

  • fix(web): key tip constraint logic requires .bottom CSS (#6784)

16.0.15 alpha

Published 2022-06-18.

  • fix(web): crash on custom modifier keys (#6790)

16.0.14 alpha

Published 2022-06-17.

  • chore(web): add 'index.html' to parent links in test pages (#6791)

16.0.12 alpha

Published 2022-06-14.

  • chore(web): replace lerna with npm workspaces and ts projects (#6525)

15.0.267 stable

Published 2022-07-26.

  • fix(web): context-only rule effects, set(&layer) from physical keystrokes ️ (#6949)
  • chore(web): remove invalid warning msg (#6951)

15.0.266 stable

Published 2022-07-08.

  • fix(web): improve console.error() reporting (#6904)
  • fix(web): ncaps rules not matching on touch (#6913)

15.0.265 stable

Published 2022-07-04.

  • fix(web): post-keystroke processing after use of pred. text selection (#6886)

15.0.264 stable

Published 2022-07-01.

  • fix(web): clears repeating bksp on keyboard reload ️ (#6863)
  • fix(web): better stability during transient OSK load state (#6861)
  • fix(web): Maintain separate Caps Lock states for touch and physical (#6874)

15.0.262 stable

Published 2022-06-23.

  • fix(web): key preview styling, positioning issues (#6795)
  • fix(web): fixes doc-keyboard generation (#6817)
  • chore(web): updates error-reporting lib uploader (pseudo- ) (#6819)

15.0.261 stable

Published 2022-06-18.

  • fix(web): crash on custom modifier keys (#6789)

15.0.259 beta

Published 2022-06-10.

  • change(web): adjusts minimum distance needed for quick-display of subkeys (#6714)
  • change(web): browser test timeout tweaks (#6718)

15.0.258 beta

Published 2022-06-06.

  • chore(web): switch on additional BrowserStack reporting (#6707)
  • fix(web): fixes OSK-interaction issues in Float, Toolbar UI modules (#6689)

15.0.255 beta

Published 2022-05-31.

  • fix(web): osk shrinkage from rounding (#6658)

15.0.247 beta

Published 2022-05-16.

  • chore(common/resources): Update langtags.json (#6594)

15.0.243 beta

Published 2022-05-03.

  • chore(web): report on file size (#6584)
  • fix(common/models): prevents preemptive tokenization of potential contractions (#6574)
  • fix(web): fixes fat-finger distrib when subkey selected (#6526)

15.0.241 beta

Published 2022-04-27.

  • change(web): touch alias optimization followup (#6566)
  • fix(common/core/web): Fix forEach loop in SentryManager (#6569)

15.0.240 beta

Published 2022-04-26.

  • feat(web): adds .getKeyboard().IsRTL, .HasLoaded (#6567)

15.0.239 beta

Published 2022-04-22.

  • fix(web): optimizes, enhances caret placement within text on mobile devices (#6551)

15.0.236 beta

Published 2022-04-19.

  • fix(web): blocks modifier key fat-fingering (#6473)

15.0.231 beta

Published 2022-04-09.

  • test(common/resources): Add Noto font to web_context_tests keyboard (#6488)

15.0.228 beta

Published 2022-04-05.

  • feat(web): prediction casing follows current layer (#6459)

15.0.227 beta

Published 2022-04-04.

  • fix(web): rely on caller for unmatched keys (#6457)

15.0.226 beta

Published 2022-04-01.

  • fix(web): track stateKeys changes with layer changes (#6453)

15.0.223 beta

Published 2022-03-27.

  • fix(web): ios popup positioning and style (#6383)

15.0.220 beta

Published 2022-03-23.

  • fix(web): adjust touch alias element positioning (#6406)

15.0.217 beta

Published 2022-03-19.

  • fix(web): bounding rect offset was incorrect (#6357)

15.0.215 beta

Published 2022-03-17.

  • fix(web): crash on focus before init (#6393)

15.0.214 beta

Published 2022-03-16.

  • feat(web): &newLayer and &oldLayer (#6366)

15.0.213 beta

Published 2022-03-15.

  • fix(web): subkey touch position after scroll (#6340)
  • fix(web): caps state tracking for touch (#6351)

15.0.206 beta

Published 2022-03-02.

  • change(web): tightens call signature for banner selection (#4966)

15.0.205 alpha

Published 2022-03-02.

  • fix(web): error in floating osk view when no keyboard active (#6316)
  • fix(web): stop repeated CSS injection (#6310)

15.0.199 alpha

Published 2022-02-18.

  • fix(web): Non-integer OSK sizes (#6248)

15.0.182 alpha

Published 2022-01-21.

  • fix(web): crash in setTitleFromKeyboard when no keyboard active (#6129)

15.0.180 alpha

Published 2022-01-18.

  • feat(web): Caps Layer and double-tap gesture (#5989)
  • fix(web): Use regex to determine display layer and functional layers (#6100)

15.0.179 alpha

Published 2022-01-17.

  • feat(web): Start of Sentence support - part 1 (#5963)
  • fix(web): call postKeystroke on banner touch (#6004)

15.0.165 alpha

Published 2021-12-08.

  • fix(web): font size was not consistently set (#5906)

15.0.157 alpha

Published 2021-11-29.

  • fix(web): remove obsolete popupBaseTarget (#5949)
  • fix(web): improve keyboard switch performance (#5958)
  • fix(web): support saving focus for custom OSK interactions (#5947)
  • fix(web): restore dragEnd function (#5977)

15.0.155 alpha

Published 2021-11-24.

  • fix(web): reset scroll anchor on touchend (#5919)
  • fix(web): shorten setFocusTimer() (#5946)
  • fix(web): clear longpress timeout if user does a flick up (#5952)

15.0.154 alpha

Published 2021-11-22.

  • fix(web): simplify hide transition (#5910)
  • fix(web): inline osk keytip position (#5938)

15.0.153 alpha

Published 2021-11-20.

  • fix(web): resolve unhandled exception in promise (#5902)

15.0.150 alpha

Published 2021-11-17.

  • fix(web): remove canvas use for iOS compatibility (#5915)

15.0.147 alpha

Published 2021-11-15.

  • fix(web): avoid error if timerid not valid (#5908)

15.0.144 alpha

Published 2021-11-12.

  • fix(web): Check parent element is defined before assigning (#5874)

15.0.127 alpha

Published 2021-10-06.

  • chore(web): disable registerstub test (#5800)

15.0.125 alpha

Published 2021-10-05.

  • fix(web): popup positioning (#5742)

15.0.124 alpha

Published 2021-10-04.

  • fix(web): support variable stores with predictive text (#5749)

15.0.118 alpha

Published 2021-09-23.

  • refactor(web): active element management in relation to OSK display control ️ (#5644)
  • refactor(web): osk activation and visibility modeling ️ (#5661)
  • feat(web): new OSK type - the inlined OSK (#5665)
  • chore(web): inline osk test page (#5728)
  • feat(web): enables mouse interactivity for the predictive banner (#5739)

15.0.116 alpha

Published 2021-09-21.

  • fix(web): Null check for calculating globe key position (#5724)

15.0.115 alpha

Published 2021-09-20.

  • refactor(web): OSK modularization - specialized OSKView classes ️ (#5633)

15.0.114 alpha

Published 2021-09-17.

  • fix(common/core/web): layer reset on physical keystroke after OSK interaction (#5641)

15.0.113 alpha

Published 2021-09-16.

  • fix(web): spacebar caption when functional layer differs from display layer (#5688)
  • refactor(web): OSK modularization - view components, layout cleanup ️ (#5619)
  • refactor(web): OSK modularization - common-path code -> OSKView ️ (#5620)
  • fix(common/core/web): Remove empty rows in OSK (#5699)

15.0.111 alpha

Published 2021-09-13.

  • fix(web,android/app): Select numeric layer when entering a numeric field (#5664)

15.0.104 alpha

Published 2021-08-26.

  • fix(web): Check keyboard before marking layout calibrated (#5630)

15.0.101 alpha

Published 2021-08-23.

  • refactor(web): overhaul of OSK key layout calcs + styling, merges desktop & touch logic (#5462)
  • refactor(web): prep work for mouse-based use of touch events (#5506)
  • refactor(web): mouse-based use of touch handlers (#5530)

15.0.98 alpha

Published 2021-08-20.

  • fix(web): Have util.wait check useAlerts option (#5538)
  • fix(common/core/web): behavior with unmatched final group (#5553)

15.0.96 alpha

Published 2021-08-19.

  • feat(web): setup build artifacts for manual tests (#5582)
  • refactor(web): OSK layout hierarchy encapsulation (#5451)
  • refactor(web): reworks VisualKeyboard layout spec design (#5459)
  • refactor(web): overhaul of OSK key layout calcs + styling, merges desktop & touch logic (#5462)

15.0.95 alpha

Published 2021-08-06.

  • fix(common/models): keep/suggestion diacritic sensitivity when de-duping (#5480)
  • fix(web): Blank spacebar text when displayName is empty string (#5555)

15.0.94 alpha

Published 2021-08-05.

  • fix(web): Have util.wait check useAlerts option (#5538)

15.0.91 alpha

Published 2021-08-02.

  • fix(web): stuck key highlighting from touchpoint movement (#5490)

15.0.89 alpha

Published 2021-07-27.

  • feat(web): Update addKeyboards to return Promise (#5389)
  • fix(common/core/web): error from early fat-finger termination due to OS interruptions (#5479)
  • fix(common/core/web): OSK state-key management (#5456)

15.0.88 alpha

Published 2021-07-23.

  • refactor(web): osk inner-frame abstraction (help text vs std OSK) (#5430)
  • refactor(web): delayed OSK initialization (#5412)

15.0.85 alpha

Published 2021-07-19.

  • refactor(web): partial encapsulation of the desktop title bar and resize bar (#5393)
  • refactor(web): osk move & resize handler encapsulation (#5409)

15.0.84 alpha

Published 2021-07-09.

  • fix(web): Copy the keyboard stubs for registration (#5438)

15.0.83 alpha

Published 2021-07-08.

  • refactor(web): longpresses, groundwork for additional gestures (#5387)

15.0.82 alpha

Published 2021-07-07.

  • fix(common/models/types): fixes test script config (#5441)

15.0.81 alpha

Published 2021-07-06.

  • chore(web): updates regression test-deps to same versions as web (#5420)

15.0.80 alpha

Published 2021-07-02.

  • feat(web): spacebar text controls (#5348)

15.0.79 alpha

Published 2021-07-01.

  • change(web): fat-finger-performance unit-test threshold (#5404)

15.0.78 alpha

Published 2021-06-30.

  • fix(web): console errors when using SHIFT w help-text 'osk' (#5392)

15.0.76 alpha

Published 2021-06-28.

  • feat(web): Merge keyboard stub with error stub (#5340)

15.0.75 alpha

Published 2021-06-25.

  • feat(web): Update addLanguageKeyboards to return a Promise (#5260)
  • feat(web): Add option useAlerts to control alerts() (#5302)

15.0.74 alpha

Published 2021-06-24.

  • feat(common/core/web): engine correction-prep optimizations (#5319)

15.0.72 alpha

Published 2021-06-22.

  • refactor(web): OSK key source-code reorganization (#5291)
  • refactor(web): osk key highlighting/preview behavior (#5292)

15.0.70 alpha

Published 2021-06-17.

  • fix(web): touch-move cancellation (#5290)

15.0.69 alpha

Published 2021-06-16.

  • refactor(web): OSK layout calculations - simplification (#5279)
  • refactor(web): VisualKeyboard - key event model (#5280)
  • refactor(web): OSK keytip abstraction (#5287)
  • refactor(web): encapsulation of browser-based subkey array popup (#5288)

15.0.68 alpha

Published 2021-06-15.

  • refactor(web): polishes management of OSK keys (#5257)
  • refactor(web): Visual Keyboard disentanglement - pass 1 (#5259)
  • refactor(web): VisualKeyboard height styling consistency (#5278)
  • fix(common/models): predictive-text engine use of NFD input (#5273)

15.0.65 alpha

Published 2021-06-10.

  • fix(common/core/web): optimizes transform construction (#5248)

15.0.64 alpha

Published 2021-06-09.

  • refactor(common/core/web, web): target-agnostic key events (#5181)

15.0.63 alpha

Published 2021-06-08.

  • fix(web): Always pass kill_browserstack (#5234)

15.0.58 alpha

Published 2021-05-28.

  • feat(web): Add script to deploy KeymanWeb release to s.keyman.com (#5150)

15.0.54 alpha

Published 2021-05-26.

  • chore(web): Add CI script to kill BrowserStack tunnel (#5136)

15.0.53 alpha

Published 2021-05-25.

  • fix(web): active element selection in multi-touch scenarios (#5134)

15.0.52 alpha

Published 2021-05-24.

  • feat(web): basic promise wrapper on cloud api call (#5121)

15.0.51 alpha

Published 2021-05-21.

  • chore(web): add test page for playing with CKEditor (#5089)

15.0.48 alpha

Published 2021-05-17.

  • fix(web): position popups correctly in landscape mode on Android and during Chrome emulation (#5075)

15.0.46 alpha

Published 2021-05-13.

  • chore(web/resources): bump lodash from 4.17.19 to 4.17.21 in /web/testing/regression-tests (#5037)

15.0.36 alpha

Published 2021-04-26.

  • fix(web): Make banner initialization more robust (#4961)

15.0.33 alpha

Published 2021-04-22.

  • fix(web): publish restorePosition() function (#4946)
  • fix(web): fixes subkey lookup for fat-finger processing (#4954)
  • fix(web, ios): better SMP, emoji handling with frequent keyboard swaps (#4938)

15.0.32 alpha

Published 2021-04-21.

  • change(web): adds error + console logs usable for Sentry reporting targeting #4797 (#4821)

15.0.4 alpha

Published 2020-12-23.

  • feat(common/models): naive backspace workaround, naive multi-char Transform mitigation (#4206)
  • fix(web): supplies missing (optional) argument to prevent warnings (#4208)

15.0.3 alpha

Published 2020-12-21.

  • fix(web): Solving kmwosk color inconsistency (#4154)

14.0.289 stable

Published 2022-03-30.

  • fix(web): track load error detail (#6443)

14.0.287 stable

Published 2022-03-04.

  • fix(web): stop masking error (#6332)

14.0.285 stable

Published 2022-01-20.

  • fix(web): Use regex to determine display layer and functional layers (#6123)

14.0.284 stable

Published 2022-01-11.

  • fix(web): popupBaseKey null check (#5948)

14.0.283 stable

Published 2021-11-17.

  • fix(web): remove canvas use for iOS compatibility (#5916)

14.0.281 stable

Published 2021-09-17.

  • fix(common/models): keep/suggestion diacritic sensitivity when de-duping (#5552)
  • fix(web): Fix layers for embedded longpress keys (#5651)
  • fix(common/core/web): Remove empty rows in OSK (#5703)

14.0.280 stable

Published 2021-08-02.

  • fix(common/core/web): error from early fat-finger termination due to OS interruptions (#5491)
  • fix(common/core/web): OSK state-key management (#5494)

14.0.278 stable

Published 2021-07-20.

  • change(common/core/web): fat-finger-performance unit-test threshold (#5417)
  • fix(web): fixes osk resize-popping effect (#5428)
  • feat(web): spacebar text controls (#5406)

14.0.277 stable

Published 2021-06-29.

  • fix(common/models): predictive-text engine use of NFD input (#5286)
  • feat(common/core/web): engine correction-prep optimizations (#5352)

14.0.276 stable

Published 2021-06-11.

  • fix(web): Always pass kill_browserstack (#5235)
  • fix(common/core/web): optimizes transform construction (#5255)

14.0.275 stable

Published 2021-06-04.

  • fix(web): position popups correctly in landscape mode on Android and during Chrome emulation (#5090)
  • fix(web): multi touch handling (#5142)
  • chore(web): Add CI script to kill BrowserStack tunnel (#5152)
  • feat(web): Add script to deploy KeymanWeb release to s.keyman.com (#5179)

14.0.273 stable

Published 2021-04-26.

  • fix(web): Make banner initialization more robust (#4983)

14.0.272 stable

Published 2021-04-23.

  • change(web): adds error + console logs usable for Sentry reporting targeting (#4929)
  • fix(web): fixes subkey lookup for fat-finger processing (#4955)
  • fix(web): publish restorePosition() function (#4957)
  • fix(web, ios): better SMP, emoji handling with frequent keyboard swaps (#4958)

14.0.268 beta

Published 2021-03-23.

  • fix(common/models): prediction threshold when count is low, unintentional aliasing (#4754)

14.0.266 beta

Published 2021-03-19.

  • fix(common/core/web): predictive banner activation logic (#4713)
  • fix(web): allows refresh of currently-loaded model (#4728)

14.0.265 beta

Published 2021-03-18.

  • fix(common/core/web): disambiguation of keys sharing same base key ID (#4703)
  • fix(web): first-pass workaround for popup-key corrections (#4704)

14.0.259 beta

Published 2021-03-12.

  • fix(web): better check for missing MutationObserver type (#4646)

14.0.258 beta

Published 2021-03-11.

  • fix(web): event handling for TouchAliasElement's blinking caret (#4638)
  • fix(common/models): prevents "undefined" reversion display string (#4648)

14.0.257 beta

Published 2021-03-10.

  • fix(common/core/web): Add keyboard check for scriptObject (#4640)

14.0.254 beta

Published 2021-03-09.

  • fix(web): use language code correctly in toolbar (#4620)

14.0.252 beta

Published 2021-03-04.

  • fix(web): fixes lack of respect for underlying-key display settings (#4572)
  • fix(common/models): fixes application of suggestions immediately after a backspace (#4587)

14.0.250 beta

Published 2021-03-02.

  • fix(common/resources): Fix help.keyman.com path for CI (#4565)

14.0.249 beta

Published 2021-03-01.

  • fix(web): mnemonic keystrokes w FF keymapping (#4540)

14.0.248 beta

Published 2021-02-26.

  • fix(common/models): predictions after context reset / caret shift (#4411)
  • feat(common/models): mid-context suggestions & reversions, fix(common/models): correction-search SMP issues (#4427)

14.0.247 beta

Published 2021-02-25.

  • fix(web): keyboard documentation patch-up (#4512)
  • fix(web): removes package namespacing from kbd's CSS class (#4516)

14.0.245 beta

Published 2021-02-24.

  • fix(common/core/web): core key-processing now always returns RuleBehavior type. (#4508)
  • fix(common/resources): Set help-keyman.com.sh executable (#4510)
  • fix(web): hides touch-alias caret when keystroke causes focus change (#4514)

14.0.244 beta

Published 2021-02-22.

  • fix(common/models): merges identical suggestions after casing (#4502)
  • fix(web): macOS 11 agent string parsing (#4497)

14.0.242 beta

Published 2021-02-11.

  • fix(common/resources): Fix help.keyman.com path for commit (#4469)

14.0.241 beta

Published 2021-02-10.

  • fix(common/resources): Just use master branch for help.keyman.com (#4459)

14.0.240 beta

Published 2021-02-09.

  • fix(common/models): predictions after context reset / caret shift (#4411)

14.0.235 beta

Published 2021-02-03.

  • fix(common/models): bksp workaround now works beyond first word (#4401)

14.0.233 beta

Published 2021-02-01.

  • fix(web): removes stylesheets from unloaded keyboards (#4371)

14.0.231 beta

Published 2021-01-28.

  • change(web): set -eu for web scripts (#4353)

14.0.230 beta

Published 2021-01-28.

  • fix(web): bulk renderer using video stream capture (#4316)
  • fix(web/ui): propagates UI module build failures (#4352)

14.0.228 beta

Published 2021-01-22.

  • fix(web): uses CSS line-height to vertically center oversized OSK keycaps (#4255)
  • fix(web): OSK loading efficiency (#4279)
  • fix(web): default popup key selection, space highlight after popup (#4306)
  • fix(web): language menu key highlighting (#4308)
  • fix(web): dynamic font downscaling for OSK keys (#4270)

14.0.227 beta

Published 2021-01-21.

  • fix(web): dynamic font downscaling for OSK keys (#4270)
  • fix(web): toolbar and loading optimisations (#4304)
  • chore(web): updates MTNT for pred-text testing page to 0.1.5 (casing) (#4305)

14.0.225 beta

Published 2021-01-19.

  • fix(web): better font-wait null guards (#4286)
  • fix(web): uses CSS line-height to vertically center oversized OSK keycaps (#4255)
  • fix(web): no key previews for special keys reliant on keyboard-specific OSK font (#4282)
  • fix(web): default kbd ui name is now generic (#4293)

14.0.224 beta

Published 2021-01-18.

  • chore(web): sample pages now wait on init's promise for keyboard loading (#4253)

14.0.223 beta

Published 2021-01-15.

  • fix(web): unexpected errors in OSK / banner position calculations (#4238)

14.0.222 beta

Published 2021-01-14.

  • fix(web): OSK key preview positioning (#4241)
  • fix(web): disables predictive text on Opera mini (#4243)

14.0.220 beta

Published 2021-01-13.

  • fix(web): osk size & position after focus changes (#4232)

14.0.219 beta

Published 2021-01-12.

  • fix(common/core/web): mnemonic modifier key-up handling (#4231)

14.0.216 beta

Published 2020-12-23.

  • fix(web): Solving kmwosk color inconsistency (#4187)

14.0.205 alpha

Published 2020-12-14.

  • fix(web): sporadic blank keyboard on Android (#4117)
  • chore(common/models): predictive-text "semi-fill" for iOS 9 use (#4118)

14.0.203 alpha

Published 2020-12-10.

  • fix(web/ui): Add null check for calculations when canceling touch (#4098)

14.0.202 alpha

Published 2020-12-09.

  • fix(web/ui): Fix check on indexOf (#4103)

14.0.200 alpha

Published 2020-12-07.

  • fix(web/ui): Add check for suggestion.tag (#4085)

14.0.197 alpha

Published 2020-12-04.

  • fix(common/core/web): Sanitize embedded KMW Sentry events (#4071)
  • fix(web/engine): findNearestKey erroneously returned key child (#4077)
  • fix(common/core/web): predictive context reset (#4072)

14.0.195 alpha

Published 2020-12-02.

  • chore(common/resources): Fix dest paths for crowdin strings (#3995)

14.0.191 alpha

Published 2020-11-27.

  • chore(common/resources): Document keeping scopes in sync (#3974)
  • fix(common/models): proper RTL quote ordering (#3897)

14.0.189 alpha

Published 2020-11-25.

  • fix(web): default attachment behavior (#3948)
  • chore(common/resources): Part 3 of additional HISTORY.md cleanup (#3947)

14.0.188 alpha

Published 2020-11-24.

  • chore(common/resources): Clean up commit types in HISTORY.md (#3926)
  • chore(web): adds LTREnter, LTRBkSp, and associated layout mapping (#3937)
  • fix(web): adds null guards for two Sentry errors (#3941)
  • chore(common/resources): additional cleanup to HISTORY.md (#3942)

14.0.186 alpha

Published 2020-11-20.

  • fix(web/engine): fixes OSK rotation (#3909)
  • feat(common/core/web): integrated suggestion casing tests (#3887)

14.0.185 alpha

Published 2020-11-19.

  • feat(web/engine): allows touch aliasing away from blank keys (#3858)

14.0.184 alpha

Published 2020-11-18.

  • feat(common/models): use of applyCasing for suggestions (#3824)
  • feat(common/models): casing for suggestions with partial replacement (#3845)
  • fix(common/core/web): Add environment to web Sentry reports (#3888)

14.0.183 alpha

Published 2020-11-17.

  • feat(web/engine): updates osk font, adds layout codes for new glyphs (#3851)
  • fix(common/core/web): meta key handling (#3847)
  • feat(common/core/web): input processor unit tests (#3836)

14.0.182 alpha

Published 2020-11-16.

  • fix(web/engine): blocks key previews for blank/hidden keys (#3857)
  • fix(common/core/web): Fixes engine-level context tests, adds notany cases (#3860)

14.0.181 alpha

Published 2020-11-13.

  • fix(common/core/web): fixes no-output logic check, arrow keys (#3848)
  • fix(common/core/web): adds missing null-check (#3859)

14.0.177 alpha

Published 2020-11-07.

  • fix(web): support for notany() and context() (#3817)

14.0.174 alpha

Published 2020-11-03.

  • chore(common/resources): improve build README.md (#3812)

14.0.172 alpha

Published 2020-10-29.

  • chore(web): Update keymanweb-osk.ttf to v. 2.100 (#3782)

14.0.171 alpha

Published 2020-10-28.

  • chore(common/models): fixes context tracking with accepted suggestions (#3767)

14.0.169 alpha

Published 2020-10-26.

  • feat(common/core/web): simplify corrective distribution (#3726)

14.0.166 alpha

Published 2020-10-22.

  • fix(web): disable U+25CC for diacritics (#3039)
  • refactor(common/models): Common tokenization and wordbreaking functions (#3706)
  • feat(common/core/web): fat-finger ignores inputs that beep (#3701)

14.0.165 alpha

Published 2020-10-21.

  • fix(web): K_SPACE handling for embedded mode, hardware keystrokes (#3707)

14.0.164 alpha

Published 2020-10-20.

  • feat(common/models): context tracking of accepted Suggestions (#3663)
  • feat(common/models): context reversion modeling (#3685)

14.0.163 alpha

Published 2020-10-19.

  • fix(web): Remove base key from popup keys (#3718)

14.0.162 alpha

Published 2020-10-18.

  • fix(web): Let embedded device handle K_TAB or K_ENTER (#3664)

14.0.161 alpha

Published 2020-10-16.

  • fix(common/core/web): fixes revert event bug (#3709)

14.0.160 alpha

Published 2020-10-14.

  • feat(common/models): disables "keep" when word is not suggestion otherwise (#3700)
  • feat(common/core/web): selective wordbreak swallowing after accepting suggestions (#3702)
  • refactor(common/models): extract Outcome type (#3705)

14.0.159 alpha

Published 2020-10-12.

  • fix(web): unit test script failure on compilation failures (#3597)

14.0.158 alpha

Published 2020-10-09.

  • feat(common/models): 'revert' now uses model's punctuation (#3647)

14.0.156 alpha

Published 2020-10-08.

  • fix(web): ci uses repo tier and version (#3672)

14.0.155 alpha

Published 2020-10-07.

  • refactor(common/models): centralizes suggestion & keep inits (#3645)
  • fix(common/models): predictions after typed whitespace (#3657)
  • fix(web): Fix how layer is separated from key name (#3659)

14.0.153 alpha

Published 2020-10-02.

  • chore(common/resources): bump @actions/core from 1.2.2 to 1.2.6 in /resources/build/version (#3646)

14.0.147 alpha

Published 2020-09-23.

  • feat(common/models): context + input tracking for predictive text (#3549)
  • feat(common/models): initial integration for enhanced corrections (#3555)
  • feat(common/models): correction thresholding, acceptance (#3556)
  • refactor(common/models): distance modeler cleanup (#3565)
  • change(common/models): context tracker cleanup, optimizations, fixes (#3573)
  • feat(common/models): Correction improvement (#3575)
  • feat(common/models): naive correction-algorithm timer (#3581)
  • fix(common/models): Android API compat for upgraded correction-search (#3601)
  • refactor(web/engine): application of predictive suggestions (#3582)

14.0.146 alpha

Published 2020-09-22.

  • chore(web): bump http-proxy from 1.17.0 to 1.18.1 in /web/testing/regression-tests (#3568)

14.0.142 alpha

Published 2020-09-15.

  • chore(common/resources): bump node-fetch from 2.6.0 to 2.6.1 in /resources/build/version (#3578)

14.0.141 alpha

Published 2020-09-11.

  • fix(web): default layout shift not changing layer (#3574)

14.0.140 alpha

Published 2020-09-09.

  • feat(common/models): core edit-distance calculation class (#3526)
  • feat(common/models): Edit path derivation (#3547)
  • feat(common/models): low-level correction-algorithm infrastructure (#3527)
  • feat(common/models): correction-search algorithm core (#3534)

14.0.135 alpha

Published 2020-08-27.

  • feat(common/models): override script defaults: spaces break words (#3506)

14.0.133 alpha

Published 2020-08-25.

  • feat(common/models): lexicon traversal (#3479)
  • feat(common/models): actual priority queue for Trie models (#3480)
  • feat(common/models): efficient batch-enqueue (#3486)

14.0.129 alpha

Published 2020-08-17.

  • chore(common/resources): Add sample vscode settings files (#3249)

14.0.127 alpha

Published 2020-08-12.

  • refactor(common/models): LMLayer state management tweak, persistent ModelCompositor (#3477)

14.0.114 alpha

Published 2020-07-22.

  • chore(web): bump lodash from 4.17.15 to 4.17.19 in /web/testing/regression-tests (#3360)

14.0.112 alpha

Published 2020-07-20.

  • change(common/models/wordbreakers): update word boundary props to 13.0 (#3365)

14.0.103 alpha

Published 2020-06-30.

  • fix(common/core/web): fixes transcription buffer cap (#3301)

14.0.96 alpha

Published 2020-06-19.

  • fix(common/resources): shebang for lerna-based Linux builds (#3260)

14.0.95 alpha

Published 2020-06-19.

  • refactor(common/resources): web-environment package (#3248)
  • fix(common/resources): web-environment package-lock.json (#3256)

14.0.84 alpha

Published 2020-05-29.

  • change(web): Selective Sentry uploads (#3163)
  • change(common/models,developer/compilers): move joiner from LMLayer to model compiler (#3071)

14.0.83 alpha

Published 2020-05-28.

  • fix(common/models/types): fixes models-types build script, sets std header (#3182)

14.0.81 alpha

Published 2020-05-27.

  • chore(common,web): use consistent TypeScript dep on all packages (#3158)
  • chore(common/resources): add common/models to build trigger definitions (#3144)
  • fix(common/resources): adds package-lock.json for gosh package (#3171)

14.0.80 alpha

Published 2020-05-25.

  • refactor(common/models/templates): create package: @keymanapp/models-templates (#3128)

14.0.79 alpha

Published 2020-05-22.

  • fix(common/core/web): use build script to generate environment.inc.ts (#3146)
  • change(common/core/web,web): update dependencies to @keymanapp/models-types (#3147)

14.0.78 alpha

Published 2020-05-21.

  • refactor(common/models): factor out word breakers to their own package (#3125)
  • chore(common/resources): cleanup scopes (#3139)
  • feat(web): starts proper KMW Sentry integration (#3122)
  • refactor(common/models/types): rename @keymanapp/lexical-model-types => @keymanapp/models-types (#3143)
  • change(common/core/web): add and distribute type declaration (#3145)
  • fix(common/models/types): drops version updates for deprecated common/lexical-model-types (#3148)

14.0.77 alpha

Published 2020-05-19.

  • refactor(web/engine): Moves common utility functions into separate web-utils package (#3130)
  • refactor(web/engine): renames DeviceSpec, moves to utils (#3132)

14.0.69 alpha

Published 2020-05-06.

  • fix(common/resources): npm install required for auto inc lerna versions (#3089)

14.0.66 alpha

Published 2020-05-04.

  • feat(web): test Recorder overhaul, Node-based tests using Recorder for KeyboardProcessor (#3060)

14.0.63 alpha

Published 2020-05-01.

  • change(common/models/wordbreakers): single-pass join word breaker decorator (#3059)

14.0.62 alpha

Published 2020-05-01.

  • feat(web/engine): Basic KeyboardProcessor tests (#2994)

14.0.61 alpha

Published 2020-04-30.

  • chore(common/resources): bump @actions/http-client from 1.0.3 to 1.0.8 in /resources/build/version (#3047)

14.0.60 alpha

Published 2020-04-29.

  • feat(common/resources): initial use of lerna (in-repo package links only) (#2997)
  • change(web/engine): spins core/web/keyboard-processor package off from KeymanWeb (#3001)
  • change(web/engine): spins core/web/input-processor package off from KeymanWeb (#3008)
  • chore(common/models): change author from personal to work affiliation (#3046)

14.0.59 alpha

Published 2020-04-29.

  • feat(common/models/wordbreakers): create join word breaker decorator (#3021)

14.0.57 alpha

Published 2020-04-27.

  • change(common/resources): Update to Unicode 13.0 (#3029)

14.0.55 alpha

Published 2020-04-23.

  • refactor(web/engine): successful web-core compilation (#2992)
  • change(common/models,developer/compilers): always bundle searchTermToKey() with model (#2971)
  • change(common/models): remove NFD table (#3014)

14.0.53 alpha

Published 2020-04-21.

  • refactor(common/models): Abstracted connection between LMLayer and Worker initialization (#2986)
  • refactor(common/models): starts a formal 'headless' mode (#2987)

14.0.52 alpha

Published 2020-04-17.

  • refactor(web/engine): precomputation for OSK key events, headless production thereof (#2969)
  • refactor(web/engine): initial ModelManager split (#2974)
  • refactor(web/engine): LMLayer enablement state management rework (#2975)
  • refactor(web/engine): predictive data routing, LanguageProcessor as EventEmitter (#2976)
  • refactor(web/engine): web-core build prep (#2982)

14.0.50 alpha

Published 2020-04-15.

  • fix(web): repairs Web regression test suite (#2973)

14.0.49 alpha

Published 2020-04-11.

  • chore(common/models): do not run tests in IE11 in Windows (#2978)

14.0.47 alpha

Published 2020-04-07.

  • fix(common/models): use searchTermToKey() on input (#2954)
  • refactor(web/engine): proper split-off of DOM-reliant code (#2939)
  • refactor(web/engine): InputProcessor/KeyboardProcessor split (#2940)
  • refactor(web/engine): headless KeyboardProcessor (#2941)

14.0.45 alpha

Published 2020-04-05.

  • chore(web): bump minimist from 1.2.2 to 1.2.3 in /web/testing/regression-tests (#2947)

14.0.44 alpha

Published 2020-04-03.

  • refactor(web/engine): relocates DOM-only parts of Processor (#2922)
  • refactor(web/engine): begins formally removing DOM-aware keyboard API functions from web-core KeyboardInterface (#2915)
  • refactor(web/engine): start of system store abstraction (#2919)
  • refactor(web/engine): Processor now manages current layer; OSK listens via callback (#2920)
  • refactor(web/engine): RuleBehavior now headless (#2925)
  • refactor(web/engine): variable store storage abstraction (#2926)
  • fix(web): fixes activeElement typing (#2927)
  • refactor(web/engine): relocates DOM-only parts of Processor (#2938)

14.0.43 alpha

Published 2020-04-02.

  • fix(web/engine): default layout fix for chiral keyboards (#2936)

14.0.41 alpha

Published 2020-03-31.

  • refactor(web/engine): KeyboardInterface/Processor cleanup and prep (#2901)
  • refactor(web/engine): Preps keyboard layouts definitions for web-core (#2902)
  • refactor(web/engine): layouts now full property of Keyboard wrapper (#2903)

14.0.40 alpha

Published 2020-03-30.

  • refactor(web): namespacing DOM-focused management (#2891)
  • refactor(web/engine): starts DOM pre-processor (#2892)
  • refactor(web): starts OSK preprocessor (#2893)
  • refactor(web): headless device representation (#2894)
  • refactor(web): cleanup for Processor.processKeyEvent (#2899)
  • chore(common/resources): Cleanup unused folders and update README (#2916)

14.0.37 alpha

Published 2020-03-27.

  • feat(common/resources): Use Crowdin CLI (v3) for handling l10n files (#2895)

14.0.36 alpha

Published 2020-03-26.

  • fix(web/engine): Fixes default key lookup returns (#2890)

14.0.35 alpha

Published 2020-03-25.

  • refactor(web/engine): activeKeyboard now tracked on Processor (#2864)
  • refactor(web/engine): Initial definition of typed Keyboard wrapper (#2868)
  • refactor(web/engine): More Keyboard wrapper properties (#2869)
  • refactor(web/engine): headless-friendly keymapping (#2870)
  • refactor(web/engine): relocates keyboard tag code, adds typing (#2883)
  • fix(web): fixes variable stores (#2884)

14.0.34 alpha

Published 2020-03-24.

  • fix(web): fixes embedded kbd initialization (#2879)

14.0.33 alpha

Published 2020-03-23.

  • refactor(web/engine): Modularize default key output handling (#2853)
  • refactor(web/engine): extended abstraction with OutputTarget (#2849)
  • refactor(web/engine): reworks use of embedded's keyman['oninserttext'] (#2850)
  • refactor(web/engine): reworks default output handling to return RuleBehaviors (#2854)
  • refactor(web/engine): removes shiftState parameter (#2859)
  • refactor(web/engine): moves new RuleBehavior type & behaviors to own file (#2861)
  • refactor(web/engine): doInputEvent moved to OutputTarget (#2862)
  • refactor(web/engine): KeyboardInterface now property of Processor (#2863)

14.0.30 alpha

Published 2020-03-19.

  • docs(common/resources): minor updates to readme (#2856)

14.0.28 alpha

Published 2020-03-18.

  • fix(web): fixes design mode and content editable issues (#2838)
  • refactor(web/engine): new RuleBehavior return type from keyboard calls, utilization (#2830)
  • refactor(web/engine): KeyEvent object now refers to outputTarget over element (#2846)

14.0.27 alpha

Published 2020-03-17.

  • chore(web): bump minimist from 1.2.0 to 1.2.2 in /web/testing/regression-tests (#2829)

14.0.25 alpha

Published 2020-03-13.

  • feat(common/resources): sentry release control (#2794)
  • fix(web): enhanced sourcemaps + proper sourcemaps for minified KMW (#2809)
  • feat(common/resources): Add script to parse crowdin translation file (#2801)
  • fix(web): applies base key layer property to unassigned subkeys (#2808)
  • fix(common/models): fixes word lookup from Tries for SMP script-based languages (#2815)
  • feat(common/resources): add release finalization for Sentry (#2819)
  • fix(web): further fixes BuildVisualKeyboard. Fixes #2818 (#2822)
  • fix(web): fixes internal reference for validation tool (#2824)

14.0.24 alpha

Published 2020-03-11.

  • fix(web): fixes build number reference of API call (#2796)
  • fix(web): updating BuildVisualKeyboard (#2802)

14.0.22 alpha

Published 2020-03-09.

  • fix(common/resources): parameter order incorrect in git diff (#2787)

14.0.21 alpha

Published 2020-03-08.

  • fix(common/resources): builds were never triggered (#2790)

14.0.19 alpha

Published 2020-03-06.

  • fix(web): support otf extension for truetype fonts (#2780)

14.0.17 alpha

Published 2020-02-26.

  • feat(common/resources): Support git worktree when configuring local hooks (#2722)

14.0.15 alpha

Published 2020-02-24.

  • chore(common/resources): Improve output when triggering Jenkins jobs (#2706)
  • fix(common/resources): Fix increment-version.sh script (#2714)

14.0.14 alpha

Published 2020-02-21.

  • fix(web): Web CI target reversion (#2693)
  • refactor(common/resources): Simplify and improve getting hook directory (#2701)

14.0.12 alpha

Published 2020-02-18.

  • chore(common/resources): Rename trigger-definitions.sh to *.config (#2665)

14.0.11 alpha

Published 2020-02-17.

  • fix(web): Fat-finger complication fixes (#2647)
  • feat(web): restyles prediction banner (#2629)
  • change(web): Testing resources update (#2651)

14.0.10 alpha

Published 2020-02-14.

  • fix(web): patches Float and Toggle UI issues (#2622)
  • change(web): build.sh recompilation of LMLayer only performed when needed (#2623)
  • fix(web): fixes positioning of native-mode language menu (#2642)

14.0.9 alpha

Published 2020-02-10.

  • fix(common/resources): refactor trigger of test builds (#2611)
  • chore(common/resources): add build scripts for beta tests (#2612)
  • fix(common/resources): don't include build-utils.sh (#2615)
  • fix(common/resources): Fix setting context when >= 64 characters (#2607)

14.0.8 alpha

Published 2020-02-07.

  • chore(common/resources): Tweak history management (#2602)
  • chore(common/resources): Update README.md (#2598)
  • chore(common/resources): Add script that checks if build is required (#2603)

14.0.7 alpha

Published 2020-02-07.

  • chore(common/resources): Tweak history management (#2602)
  • chore(common/resources): Update README.md (#2598)

14.0.5 alpha

Published 2020-02-04.

  • chore(common/resources): support test builds on master/beta/stable-x.y (#2576)
  • fix(web): default BKSP output targeting (#2561)

14.0.4 alpha

Published 2020-02-03.

  • chore(common/resources): trigger builds after version increment (#2572)
  • fix(web): dev_resource compile fix (#2557)
  • fix(web): Fix K_TAB from external keyboard (#2546)
  • fix(common/models): RTL model specification (#2554)
  • fix(web): Suggestion reordering for RTL languages (#2553)

14.0.3 alpha

Published 2020-02-03.

  • chore(common/resources): increment version final (#2568)
  • chore(common/resources): add version tags (#2570)

14.0.2 alpha

Published 2020-01-29.

  • chore(common/resources): version tags (#2562)

14.0.1 alpha

Published 2020-01-29.

  • chore(common/resources): Starting 14.0 release

13.0.106 stable

Published 2020-04-15.

  • Fixes issues with matching input against possible predictions (#2957)
  • Adds support for use of web popup keys in embedded mode (#2970)

13.0.105 stable

Published 2020-03-18.

  • Fixes issue in OSK layer resizing that affected iOS app (#2841)
  • Fixes issue with text output to content-editable elements and design-mode iframes (#2839)

13.0.104 stable

Published 2020-03-13.

  • Bug fix: further updates BuildVisualKeyboard (#2823)
  • Bug fix: fixes word lookup for wordlist models for languages in the SMP Unicode planes (#2821)
  • Bug fix: fixes issue with touch-layout popup key modifier interpretation (#2820)
  • Bug fix: fixes issue with bulk-rendering OSK validation dev tool (#2823)

13.0.103 stable

Published 2020-03-11.

  • Bug fix: updates BuildVisualKeyboard for generating help documentation (#2807)
  • Bug fix: fixes issue with addKeyboards Cloud API call (#2797)

13.0.101 stable

Published 2020-03-06.

  • Bug fix: support .otf extension for web fonts (#2781)

13.0.39 beta

Published 2020-02-14.

  • Bug fix: spurious console warnings generated for desktop-based keyboards used in touch mode (#2647)
  • Change: Updated predictive-text banner styling (#2629)

13.0.38 beta

Published 2020-02-13.

  • Bug fix: language menu not positioned correctly for touch-based devices (#2642)

13.0.33 beta

Published 2020-02-03.

  • Bug fix: BKSP not working corrrectly with design-mode iframes (#2561)

13.0.32 beta

Published 2020-01-30.

  • Bug fix: Predictive-text tweaks for RTL language lexical models (#2553, #2554)
  • Bug fix: Fixed external keyboard key "tab" for embedded devices (#2546)

13.0.31 beta

Published 2020-01-28.

  • Start version 13.0
  • Feature: iOS dark mode support (#2468, #2484)
  • Bug fix: Scroll characters into view on Chrome when editing (#2514)
  • Bug fix: Support SMP characters in Trie lexical models (#2477, #2518)
  • Bug fix: Prevents infinite loop (w timeout) for ui init when embedded (#2476)
  • Bug fix: Fixes issue with keyboards requiring special state notifications, such as the CJK picker keyboards (#2187, 12.0:#2194)
  • Bug fix: Fix for iOS Safari's "Request Desktop Website" option disabling touch interactivity (#2268, 12.0:#2283)
  • Bug fix: Fix for keyboards using rules with the nul statement that replace the full context (#2274, 12.0:#2284)
  • Bug fix: Fixes issue with mnemonic keyboard handling of backspace and delete keys (#2287, 12.0:#2288)
  • Bug fix: Ctrl+Shift+double-click of status bar in OSK was not showing version number (#2309)
  • Bug fix: displayUnderlying flag was being ignored (#2353, 12.0:#2355)
  • Bug fix: Firefox on macOS was not being detected correctly (#2381, 12.0:#2383)
  • Bug fix: Default word breaker for lexical models was not working correctly (#2405)
  • Bug fix: Default word breaker for lexical models did not support old platforms (#2440, 12.0:#2434)
  • Change: Updates to build environment (#2354, 12.0:#2364)
  • Change: Updates to build environment only (#2371, 12.0:#2372)

12.0.106 stable

Published 2019-12-18.

  • Bug fix: Default word breaker for lexical models did not support old platforms (#2434)

12.0.105 stable

Published 2019-11-28.

  • Bug fix: Keyman was not working on old Android browsers (#2358)
  • Bug fix: Firefox on macOS was not being detected correctly (#2383)

12.0.104 stable

Published 2019-11-26.

  • Bug fix: displayUnderlying flag was being ignored (#2355)
  • Change: Updates to build environment (#2364)

12-0.103 stable

Published 2019-11-25.

  • Change: Updates to build environment only (#2372)

12.0.102 stable

Published 2019-11-13.

  • Bug fix: Fixes issue with mnemonic keyboard handling of backspace and delete keys (#2288)
  • Bug fix: Fix for iOS Safari's "Request Desktop Website" option disabling touch interactivity (#2283)
  • Bug fix: Fix for keyboards using rules with the nul statement that replace the full context (#2284)

12.0.101 stable

Published 2019-10-10.

  • Bug fix: Fixes issue with keyboards requiring special state notifications, such as the CJK picker keyboards (#2194)

12.0.100 stable

Published 2019-10-07.

  • Release 12.0

12.0.90 beta

Published 2019-10-04.

  • Fixes next-layer management complications with predictive correction data computation (#2172)

12.0.87 beta

Published 2019-10-01.

  • Fixes the setLastActiveElement API function for touch form factors (#2151)

12.0.86 beta

Published 2019-09-23.

  • Fixes issue in Toolbar UI for some keyboards with language ids that include subtags (#2116)
  • Fixes issue with '=' key use on certain platforms in Firefox (#2118)

12.0.85 beta

Published 2019-09-20.

  • Adds failsafe in case of sticky backspace scenarios, making it simpler to cancel. (#2107)

12.0.83 beta

Published 2019-09-10.

  • Enables scrolling for long suggestions in the mobile-only predictive text banner (#2071)

12.0.82 beta

Published 2019-09-09.

  • Fixes output of the 102nd key for touch keyboards using desktop layouts (#2064)

12.0.81 beta

Published 2019-09-06.

  • For keyboards compiled with Developer 12.0 onward, default key caps will no longer be provided. (#2045)

12.0.80 beta

Published 2019-09-04.

  • Fixed issue with 'pt' and unitless font size specifications for keyboard layouts (#2033)
  • Slightly enhanced error logging for internal events (#2037)

12.0.79 beta

Published 2019-09-03.

  • Tweaks suggestion banner behavior after multiple backspaces. (#2027)

12.0.78 beta

Published 2019-09-02.

  • Fixes erroneous 'beep' feedback on mobile form-factors (#2013)
  • Longpress menu disappears properly after selecting a subkey (#2013)

12.0.76 beta

Published 2019-08-09.

  • The suggestion banner will no longer activate if predictions are not enabled, regardless of correction state. (#1960)

12.0.75 beta

Published 2019-08-07.

  • Fixes issue where keyboard name / language caption was missing from spacebar (#1937)

12.0.74 beta

Published 2019-08-06.

  • Fixes issue with an extra space being added after accepted predictive suggestions (#1936)

12.0.72 beta

Published 2019-07-29.

  • Initial beta release of KeymanWeb 12

  • Pull Requests

  • New Features:

    • Began adding support for our common LMLayer interface for predictive modeling.
    • Implemented WebWorker background thread for the heavy lifting; all API calls with relevant return values return Promises.
    • Provides API for the following language-modeling functions:
      • predict - Prediction of user's desired word based on context and recent input
      • Also returns a tagged prediction corresponding to the original context state.
      • Corrections are currently limited to the most recent input keystroke.
      • Accepts a probability distribution for the most recent keystroke, which is be used to weight prediction probabilities
      • wordbreak - Performs wordbreaking on the current context state
      • A default wordbreaker based on the Unicode specification is provided as a default.
    • Implements a common "template" for weighted wordlist lexical model functionality:
      • Accepts a "search term to key" function to facilitate common corrections, such as diacritics, during prediction lookups.
      • Predictions are weighted based on their frequency and their input likelihood (based on keystroke probabilities).
    • Accepts fully-specified custom lexical models that do not rely on model "templates."
  • Changes:

    • Resumed TypeScript conversion work, resulting in significant internal restructuring and reorganization while leaving our published API intact.
    • Mobile web "touch alias" elements have been refactored into their own type.
    • Heavily reorganizes and refactors the keystroke processing engine of KMW.
      • Attachment to all supported element types has now been abstracted, splitting keystroke processing from related DOM management.
      • Centralizes code paths to improve parity between hardware and OSK-based keystrokes.
    • In both cases above, significant unit testing was facilitated and has been added as a result, further improving code maintainability into the future.

11.0.225 stable

Published 2019-04-25.

  • Fixes bug with Mandarin Chinese 'picker' UI

11.0.222 stable

Published 2019-02-27.

  • Fixes bug with OSK keys set as if on a different layer from the one they are actually on (#1628)

11.0.221 stable

Published 2019-02-26.

  • Fixes bug with the Toolbar UI (#1629)

11.0.220 stable

Published 2019-02-25.

  • 11.0 Stable release

11.0.208 beta

Published 2019-02-25.

  • KeymanWeb now works again in Safari on iOS 9.3.5 (#1588)

11.0.206 beta

Published 2019-01-18.

  • Change: Update beta version and remove hardcoded version strings (#1537)

11.0.205 beta

Published 2019-01-17.

  • New Feature: The displayUnderlying flag for showing base layout key caps is now available per-platform. (#1539)
  • Bug Fix: Fix missing text on spacebar and update Karma version (#1540)

11.0.204 beta

Published 2019-01-15.

  • No changes

11.0.203 beta

Published 2019-01-11.

  • Add default mapping for K_oE2 (102nd key) (#1491)

11.0.202 beta

Published 2019-01-04.

  • Bug Fix: Fixed external keyboard keys "tab" and "backspace" for embedded platforms (#1474)

11.0.201 beta

Published 2019-01-03.

  • New Feature: Adds the alignInputs() API function to facilitate touch-alias element work-arounds in case of future issues. (#69)
  • Bug Fix: Fixed keyboard layer transition bug on mobile devices. (#978)

11.0.200 beta

Published 2019-01-02.

  • Initial beta release of KeymanWeb 11

  • Pull Requests

  • New Features:

    • Added setNumericLayer() for embedded platforms to change OSK to numeric layer. (#1218)
    • Added support for Promises to init() and setActiveKeyboard(). (#1432)
  • Changes:

    • Added OSK bulk rendering script for testing (#1432)
    • Code refactors (#1403)
  • Bug Fixes:

    • Fixed issue where file extensions are upper-case, e.g. ".TTF" (#1333)
    • Fixed keyboard layout issues after mobile device rotations. (#1393)
    • Fixed issue with oversized key text on some keyboards. (#1421)
    • Fixed issue with diacritics not displaying on some keyboards. (#1407)
    • Fixed issue with virtual key case sensitivity (#1394)
    • Fixed multiple issues on iOS (#1393)
    • Fixed issues with language duplication in toolbar UI (#1284)
    • Fixed crashes (#1057)
    • Adds the alignInputs() API function to facilitate touch-alias element work-arounds in case of future issues. (#1452)

10.0.103 stable

Published 2018-07-06.

  • Fixes issue for embedded Android, iOS apps where a keyboard with varying row counts in different layers could crash (#1055)

10.0.100 stable

Published 2018-06-28.

  • 10.0 stable release

10.0.99 beta

Published 2018-06-27.

  • Fixes issue where next layer was not correctly selected when the first longpress key pressed (#1027)

10.0.98 beta

Published 2018-06-26.

  • Fixes miskey when pressing between two keys on iOS (#1020)

10.0.97 beta

Published 2018-06-21.

  • Fixes an issue where cancelling a touch event could cause the keyboard to throw an error on Android (#1014)

10.0.96 beta

Published 2018-06-20.

  • Fixes edge case issue with deadkeys in complex keyboards with multiple groups (#1008)

10.0.95 beta

Published 2018-06-15.

  • No substantial changes.

10.0.94 beta

Published 2018-06-13.

  • No substantial changes.

10.0.93 beta

Published 2018-06-11.

  • Platform tests (in keyboards) are now consistent across all platforms (#969)

10.0.92 beta

Published 2018-05-22.

  • (Embedded) Fixes out-of-order key events in Keyman for iOS (does not affect web hosted keyboard) (#865)

10.0.91 beta

Published 2018-05-09.

  • Fixes basic support for mnemonic keyboards. (#517)
    • At this time, all mnemonic keyboards will assume a US keyboard layout within KeymanWeb.

10.0.90 beta

Published 2018-05-08.

  • Fixes support for Keyman-language 'beep' statements as part of keyboard stores. (#733)

10.0.89 beta

Published 2018-05-07.

  • Fixes an issue with case sensitive virtual keys used by some Keyman keyboards. (#162)

10.0.88 beta

Published 2018-04-30.

  • Fixes some left/right modifier issues (#797)

10.0.87 beta

Published 2018-04-25.

  • Fixes some issues with default key output (#772)

10.0.86 beta

Published 2018-04-25.

  • Fixes display of popup keys representing modifiers and other special characters. (#698)

10.0.85 beta

Published 2018-03-26.

  • No substantial changes.

10.0.84 beta

Published 2018-03-23.

  • Fixed a single test case (#703).

10.0.83 beta

Published 2018-03-22.

  • Initial beta for KeymanWeb v 10.0.

10.0 alpha

  • Updated versioning scheme for uniformity across all Keyman products.
  • Reworked the KeymanWeb attachment model significantly to allow greater user control. (#98)
    • The 'kmw-disabled' flag may now be used to automatically enable and disable KMW for attached controls.
    • Attachment is now separate from the enabled and disabled state of a control.
    • New API functions have been added: detachFromControl, enableControl, disableControl, setKeyboardForControl.
  • Removed old code directed at legacy browsers no longer supported. (#212)
  • Refactored code paths relating to KMW's embedding in the iOS and Android apps. (#211)
  • Added support for L/R Alt and Ctrl modifiers for keyboards. (#9) (#52)
  • Added support for use of the Caps Lock state within keyboards if specified by a keyboard designer.
  • Reworked the keyboard-interfacing API calls and base layout of KeymanWeb (#349)
  • Fixed keyboard loading upon initialization, redundant cloud requests for keyboards. (#103)
  • Fixed next-layer processing (#116) (#358)
  • Fixed auto-attaching mode bug. (#352)
  • Set the default behavior of KMW to auto-attach for all devices, rather than only desktops. (#375)
  • Fixed key codes for longpress keys and handle default keys beyond U_FFFF
  • Enhanced the removeKeyboards API function (#5)
  • Fixed an issue with the Toolbar UI under certain scenarios (#271)
  • New feature: physical keyboard input now supported on touch-enabled inputs. (#237) (#311)
    • Note that hardware-based keyboard input will always follow 'hardware' and 'desktop' platform rules to ensure consistency.
  • Fixed behavior of longpress subkeys specifying (layer-default) modifier settings. (#161)
  • Converted KeymanWeb (largely) to TypeScript and streamlined the code to reflect new minimum requirements.
  • Fixed styling of "Special" keys on touch layouts
  • Added automated testing for KeymanWeb builds. (#350)
  • Fixed bugs in the handling of deadkeys. (#281)
  • Change from ISO 639-3 language codes to BCP-47 language codes
  • Now generates 'change' and 'input' events from keyboard and OSK input (#42) (#571)

2.0.473 stable

Published 2017-07-10.

  • 2.0 stable release build.
  • Removed a build warning. (#125)
  • Fixed bug with longpress menus not working correctly on symbol/numeric layers (#115)

2.0.465 beta

Published 2017-07-04.

  • Fixed issues with the Bookmarklet feature not loading correctly. (#112)

2.0.464 beta

Published 2017-06-29.

  • Fix for broken keys in hardware keyboards on Android devices (#110)

2.0.463 beta

Published 2017-06-27.

  • Reworked keyboard load to provide clearer and faster feedback on errors, improve performance (#87)

2.0.460 beta

Published 2017-06-21.

  • Automated build configuration with enhanced build scripts (#102)

2.0.453 stable

Published 2017-06-16.

  • KeymanWeb now supports MutationObservers for dynamically added and removed input elements on the page when the initialization option attachType is set to auto and will attach/detach to these automatically. (#29)
  • The touch implementation now supports keyboards with layers of differing row counts (#53)
  • KeymanWeb support on touchscreen laptops is now greatly improved when not in touch-oriented mode (#61)
  • Updated the source for compatibility and removal of warnings when building under the latest versions of Google Closure (#72)
  • Updated copyright messages (#96)
  • General improvements to the KeymanWeb build paths (#95)
  • Fix bugs where setActiveKeyboard would fail, and setting default keyboards fail (#94)

2.0.394 stable

Published 2015-06-26.

  • Added Android-specific OSK styling for phones and tablets.

2.0.393 beta

Published 2015-06-18.

  • Corrected text label for added popup copy of base key.

2.0.392 beta

Published 2015-06-18.

  • Key highlighting behavior corrected.
  • OSK key sizes corrected.

2.0.391 beta

Published 2015-06-18.

  • Fixed text on key preview.

2.0.390 stable

Published 2015-06-11.

  • Updated CSS for vertical centering of text on keys.

2.0.389 stable

Published 2015-06-02.

  • Corrected key preview/popup key interaction on phones.

2.0.388 beta

Published 2015-05-28.

  • Key preview further corrected for compatibility with embedded iOS apps.

2.0.387 beta

Published 2015-05-26.

  • Key preview logic corrected for KMEI, KMEI-specific code moved out of kmwosk.js.

2.0.386 stable

Published 2015-05-22.

  • Key preview now fully tested, excluded for space bar, special keys, and popup keys.

2.0.385 beta

Published 2015-05-15.

  • Further changes to key preview and key highlighting.

2.0.384 beta

Published 2015-05-14.

  • Changed key preview to key highlighting for space bar and special keys.

2.0.383 beta

Published 2015-05-12.

  • Corrected moveOver, backspace key, preview management.

2.0.382 beta

Published 2015-05-12.

  • Changed integration of key preview notification (for embedded KMW).
  • Corrected key highlighting behavior.
  • Fix nearestKey() error if returning null.

2.0.381 stable

Published 2015-05-07.

  • Single keyboard event model replacing separate key events.
  • Added changes to static layout.

2.0.380 stable

Published 2015-04-24.

  • Fix inconsistency from adjustHeights issue.

2.0.379 beta

Published 2015-04-24.

  • Trap errors in adjustHeights().

2.0.378 beta

Published 2015-04-24.

  • Correct adjustHeights().

2.0.377 stable

Published 2015-02-16.

  • Consolidation from separate development builds, no significant changes.
  • Fixed application of embedded font to OSK. (#7)

2.0.376 stable

Published 2015-01-23.

  • RTL set on entry, add support for SVG (for system keyboard fonts).
  • Added delay between installing and activating keyboards. (#6)

2.0.375 stable

Published 2014-11-11.

  • First open source build.
  • OSK key text truncated on phones. (#1)

2.0.369 beta

Published 2014-10-28.

  • Adjust OSK padding and margin in CSS.

2.0.368 beta

Published 2014-10-25.

  • Correct remote paths to keyboards, resources and fonts to correctly reference cloud server.

2.0.367 beta

Published 2014-10-24.

  • Prevent failure if bad arguments provided in request for meta-data sent to keyman cloud, warn user if unrecognized language given.

2.0.366 beta

Published 2014-10-24.

  • Fix addKeyboards() and related code to return complete keyboard list if called with no arguments.
  • Correct invalid return values in smpstring.js.
  • Remove debug reference from kmwtoggle.js.
  • kmwbase.js: accept file: as protocol for page or resource references.
  • Expose font checking as isFontAvailable(name) to allow site developers to check that a custom font has in fact been installed by the user's browser. (This was added partly to make it possible to know if cross-source font loading was being prevented, as by Firefox unless an override option is set. Not currently used, as use during page loading is problematic.)

2.0.365 stable

Published 2014-10-20.

  • Source, output and samples directories reorganized and new build.bat files added.

2.0.364 stable

Published 2014-10-17.

  • Updated initialization (and other) code to handle file:// when loading page directly from source rather than form a web site.
  • Tidy up OSK styles.

2.0.363 stable

Published 2014-10-17.

  • Added conditionallyHideOsk() to hide OSK if anywhere except mapped input touched except when scrolling.
  • Get more accurate (browser and device-dependent) device width for touch devices.
  • Add pixel-based scaling for OSK, move styles from js to CSS where possible.
  • Remove duplicated code for mouse event handling.
  • Add class modifier (kmw-5rows) to apply different scaling for 5-row keyboards in CSS.
  • Prevent failure if requested keyboard font unavailable, set default options (native.js).
  • Moved some default code back to keymanweb.js from native.js. (Can be overridden in embedded.js)
  • Moved option key and rotation event handling to native.js (not used by KMEI/KMEA).
  • kmwbase.js - add stub functions to avoid failure if initialization delayed, add exception trapping to viewport scaling.

2.0.362 stable

Published 2014-09-05.

  • Fixed addKeyboards() and related functions for loading keyboards fro the cloud or local files.
  • Added addKeyboardsByLanguage().
  • Added doKeyboardUnregistered() function to handle kmw.registered again if the list of registered keyboards changes to allow external UI to update language/keyboard menus.
  • Modified installKeyboard to use the file name as a parameter rather than the stub object.
  • Removed remaining domain validation code, revised path reference resolution during initialization.
  • OSK - qualify styles by OS, correct style name for OSK frame.
  • Add support for keyboard-specific style sheets.
  • Desktop UIs - set default keyboard to English to allow mapping to remain active, update menus after loading or unloading keyboard references.
  • Keyboard load wait indicator disabled when loading local keyboards.
  • Added member lists of languages and stubs to allow deferred loading of metadata from cloud.
  • kmwbase.js: update code for getting path and protocol from executing script.

2.0.361 stable

Published 2014-07-31.

  • Added addKeyboards and related functions to load keyboards from the cloud server.
  • Moved alignInputs to native.js.
  • Removed explicit references to KeymanTouch from shared code.
  • Moved keyboard load timer and device rotation handling to native.js, excluded from embedded.js.
  • Moved OSK refresh, keyboard load fail warning to native.js.

2.0.360 stable

Published 2014-07-25.

  • Moved keyboard path and root path resolution to getKeyboardPath() function (for KMEW/KMEI branching).
  • Moved all KMEI/KMEA specific code to embedded.js, KMEW specific code to native.js.
  • Removed duplicated keymanweb.addEventListener function.
  • OSK - correct popup delay, moved showKeyTip() and popup-key highlighting to native.js. (Not used by KMEI/KMEA).
  • OSK - moved KMEI/KMEI specific code to embedded.js.
  • KMW and OSK - added mouse event handlers for desktop simulation.
  • OSK - use getStyleSheetPath() to separate KMEW from KMEI/KMEA paths.
  • OSK - move font check code to native.js.
  • kmwbase.js - added fontCheckTimer(), updated help URL, added default event handlers to replace inline handlers where possible, changed myPath(srcFile) to require name of source file to be used to identify path.
  • kmwbase.js - moved keyboard loading wait() function to kmwnative.js (not used by embedded apps).

2.0.359 stable

Published 2014-06-12.

  • Moved all key tip and key preview (KMEA, KMEI) code to highlight on/off function.
  • Added call to kmw.keyboardchange event from OSK language menu change.

2.0.358 stable

Published 2014-06-12.

  • Added call to oskClearKeyPreview() to cancel display of key preview window (where appropriate) by KMEA, KMEI.

2.0.357 stable

Published 2014-05-08.

  • Now calls oskCreateKeyPreview in KMEA, KMEI to support display of local key preview windows on those devices.
  • Corrected language menu on touch devices to ensure that the keyboard selector buttons remain visible when multiple keyboards are available for one language.

2.0.356 beta

Published 2014-05-08.

  • Correct keyboard load sequencing (KMEW-101).

2.0.355 stable

Published 2014-05-02.

  • Added code to executePopupKey to fully support unmapped key fallback processing.

2.0.354 beta

Published 2014-05-01.

  • Corrected code in executePopupKey to support layer mapping from native apps.
  • Reduced popup delay time if user slides touch point up toward popup window.
  • Reduced OSK spacebar caption line spacing and text size (CSS change and new class for spacebar caption parent).

2.0.352 beta

Published 2014-05-01.

  • Reduced popup key delay when sending popup data to native keyman app (Keyman for iPhone, Keyman for Android). Does not affect Keyman for Web.

2.0.351 beta

Published 2014-05-01.

  • Removed debug alert (affected IE only).

2.0.350 stable

Published 2014-04-24.

  • Corrected handling of U_xxxx virtual key codes to support all values except control codes.
  • Adjusted pop-key positioning.
  • Add support for code conditioning by layer (KIFS statement).

2.0.349 stable

Published 2014-04-17.

  • Added 'keytip' labels to phone layouts, removed simulated (pop-up key) labels. Increased delay before displaying pop-up keys to 0.5 sec.
  • Hide non-functional keyboard layers and remove any shift-key references to such layers.

2.0.348 stable

Published 2014-04-03.

  • keymanweb.BuildVisualKeyboard (exposed) function restored to allow an image of the keyboard for any device to be displayed (or printed) using a desktop browser.
  • Updated file locations: if keyboard (or font) file URL start with /,./ or ../, load with respect to current page; if URL includes :, treat as absolute, otherwise prepend keyboards (or fonts) path to given file name.

2.0.347 beta

  • Change all key ids to Keyman Desktop names, remove all duplicate names, and renumber special (non-outputting) keys from 50000.
  • Add special handling to distinguish between K_xxxx (mapped physical keys), T_xxxx (named touch keys), U_xxxx (touch keys with default Unicode output).
  • Extend and correct KIFS handling to constrain rules according to touch/physical keyboard, platform, form factor and browser/application.
  • Add device.browser member, extend identification of IE version to include IE11.
  • Fix incorrect language menu position for Firefox on Android.

2.0.346 beta

  • Correct font path to allow use of page-relative fonts. (Remove all absolute paths from code.).

2.0.345 beta

  • Prevent display of undefined OSK layers.
  • Set default font family for each OSK key (not only for entire OSK).
  • Expose function 'correctOSKTextSize()' to allow app to correct OSK text size.
  • Change pop-up key element id from 'subkey-...' to 'popup-[layer]-...' e.g. change subkey-K_A to popup-default-K_A. (KMEW-93).
  • Ensure that popup keys managed by device are correctly cancelled.
  • Apply modifier state to popup keys. (KMEW-93).

2.0.344 beta

  • Add charset=UTF-8 to script tags to ensure correct interpretation of keyboards loaded by non-UTF-8 page. (KMEW-89).
  • Correct font scaling on phone devices. (KMEW-90, KBDS-5).
  • Add support for platform-dependent font size specification. (KMEW-90, KBDS-5).

2.0.343 stable

Published 2014-03-28.

  • Now supports WordPress plug-in on touch devices as well as desktop. (KMEW-79).
  • Correct layout issues with Chrome, Firefox and Opera browsers on Android, but abandon support for native Android browsers, as behaviour varies too much between devices and Android versions, which do not always display embedded (complex) fonts. (KMEW-82, KMEW-83).
  • Default embedded font format for Android is now TTF (as well as for other platforms).
  • Fix duplicated element border and background display.
  • Prevent touchend event propagation (causing unwanted behaviour).
  • Correct focus when moving between mapped and unmapped elements.

2.0.342 beta

  • Correct OSK key sizing and appearance (especially Firefox).
  • Correct language selection from language menu (manage change of focus).
  • Correct duplicated element transparency.

2.0.341 beta

  • Hide OSK when moving to unmapped input.
  • Correct browser-dependent alignment of duplicated input elements.
  • Match duplicated INPUT element height and spacing with base element.
  • Cache keyboard input context strings to optimize rule processing (MCD).
  • Prevent OSK disappearing when moving to next element.
  • Support email and url input types (as well as text and search).
  • Resize inputs after a rotation (Android browsers).
  • Handle device rotation for Firefox browser.
  • Recognize and correctly manage non-iOS devices that identify as iPad or iPhone in user agent string. (Android does not handle gesture events.)

2.0.340 beta

  • Handle viewport scaling to remove fixed scaling restriction, required for WordPress Plug-In.
  • Correct duplicated touch-screen input element for box-sizing and parent element attributes.
  • Now use script-dependent character strings to check loading of embedded fonts.
  • Sort input elements by position (once) rather than each time Tab is pressed. (KMEW-24).
  • Add support for direct write to element by Keyman Engine for iPhone and iPad, Keyman Engine for Android.
  • Handle device rotation using orientationchange event instead of resize event, and rescale OSK keys after a rotation. (Corrects resizing issue on iOS7.).
  • Handle Enter/Return from OSK for search and submit input types.
  • Correct OSK height and support external call by Keyman Engines for iPhone, iPad, Android.
  • Handle blur event for duplicated input fields, and remove onfocus handler, since required behaviour is performed by touchstart handler.
  • Recognize KeymanTouch “Mobile” and “Tablet” application identifiers and select form factor accordingly.
  • Disable base elements on touch devices instead of setting readonly, to prevent base elements from ever receiving focus.
  • Correct OSK key highlighting.
  • Correct display and hiding of pop-up keys (especially for KeymanTouch).
  • Adjust size and position of OSK and language menu for viewport and device-dependent scaling.

2.0.339 beta

  • Identify Android version from user agent string.
  • Manage double-tap zoom on Android native browsers (not completely effective).
  • Support direct character insertion and pop-up key cancellation for KeymanTouch..

2.0.338 beta

  • Use absolute key positions for OSK.
  • Manage standard keyboard layers on touch devices.
  • Allow external control of OSK height (KeymanTouch).

2.0.337 beta

  • Correct ‘wait’ window behaviour.
  • Prevent crash if keyboard stylesheet unavailable.

2.0.336 beta

  • Correct API calls for returning keyboard metadata.
  • Add new icons to desktop OSK title bar.
  • Truncate long language names in toolbar UI.

2.0.335 beta

  • Correct initialization timing.
  • Add call-back to allow UI to manage OSK display events.
  • Correct display of desktop ‘toggle’ UI.

2.0.334 beta

  • Fix multi-touch response when hiding language menu on touch devices.
  • Add special key recognition based on names instead of key IDs.
  • Use custom alert for displaying build on touch devices.

2.0.333 beta

  • Add support to allow KeymanTouch to manage iPad as well as iPhone.
  • Add support for new special numeric, symbol and currency OSK layers.
  • Correct OSK row sizing.
  • Add single-key pop-up as temporary solution for enlarging visible key on phone devices.
  • Correct OSK cookie behaviour (for desktop browsers).
  • Correct desktop UI initialization timing.

2.0.332 beta

  • Recognize special numeric, symbol and currency OSK layers.

2.0.331 beta

  • Rename attribute for embedded font files from ‘source’ to ‘files’.

2.0.330 beta

  • Rename embedded font location option from ‘fontSource’ to ‘fonts’.
  • Correct OSK initialization timing for subscription model.

2.0.329 beta

  • Support downloadable embedded fonts using added style-sheets.
  • Correct computed styles for non-IE browsers.
  • Fix non-ASCII key-cap labels for non-English layouts.
  • Manage scroll behaviour on language menu.
  • Rename duplicated input element class as ‘keymanweb-input’ (was ‘KMW-input’).
  • Align duplicated elements with base elements after a rotation or resize.
  • Set font for base elements according to keyboard and possibly embedded font.
  • Use root-relative paths for fonts and other resources.

2.0.327 beta

  • Add API call ‘moveToElement’ to allow UI or page to set focus.
  • Correct appearance and behaviour of toolbar UI.

2.0.325 beta

  • Correct resource paths.
  • Fix alert window closure.
  • Recognize own name as ‘keymanios’ and fix resource path for KeymanTouch applications.
  • Clarify keyboard load failure message.
  • Set US English as default keyboard.
  • Correct determination of resource path.
  • Delay touch device and UI initialization until page and all code loaded.
  • Define special key codes for special layer selection.
  • Support repeat on backspace for touch devices.
  • Correct popup key font and text size.
  • Fix language menu background behaviour.
  • Add language menu index strip and highlight language menu key before selecting language.
  • Remove explicit styles from code, add to default style sheet.
  • Correct OSK size according to device (screen height and width reported differently by different devices).
  • Add keycap labels for phonetic keyboards on touch devices.
  • Use special font lookup for modifier and other special function keys.
  • Revise (and simplify) default touch layout.
  • Correct focus management for desktop toolbar UI.

2.0.320 beta

  • Now takes language properties from keyboard descriptor (stub), not from keyboard, correcting problem with Eurolatin and other keyboards used for many different languages. (KMEW-26).
  • Remove (obsolete) shadow and rounding style functions.
  • Add custom alert and wait messages.
  • Correct size and position of duplicated touch-device input elements.
  • Add exposed function for selecting active input element.
  • Prevent handling non-mappable input types.
  • Add timeout to keyboard load.
  • Add special initialization for KeymanTouch.
  • Correct handling of saved language cookie.
  • Re-align inputs on rotation.
  • Correct keyboard registration issues.
  • Add or correct calls for external UI management of OSK.
  • Use classes to highlight OSK keys when touched.
  • Correct positioning of pop-up key arrays.
  • Move explicit OSK styles to CSS classes.

2.0.315 beta

Published 2013-01-25.

  • Add function for removal of external style sheet.
  • Add function to automatically focus first mapped element on page.
  • Corrected language menu behaviour.
  • Moved language indicator to space bar.
  • Redesign of language menu on touch screen devices.

2.0.310 beta

  • Corrected keyboard mapping context error (KMEW-1).
  • Fixed touch input element scrollbar positioning error (KMEW-5).
  • Add function to manage loading external style sheets.
  • (Many other developmental changes.)

2.0.300 beta

Published 2011-08-26.

  • First version of KeymanWeb with touch screen support.