www.cendio.com

Bug 5135

Summary: Keyboard problems with Web Access
Product: ThinLinc Reporter: Henrik Andersson <hean01@cendio.se>
Component: Web AccessAssignee: Peter Åstrand <astrand@cendio.se>
Status: NEW QA Contact: Bugzilla mail exporter <bugzilla-qa@cendio.se>
Severity: Normal    
Priority: P2 CC: baf@cpan.org, samuel@cendio.se
Version: trunk   
Target Milestone: MediumPrio   
Hardware: PC   
OS: Unknown   
Acceptance Criteria:
Bug Depends on: 5369, 6152    
Bug Blocks: 3523    
Attachments: Test report from bug4865

Description From cendio 2014-05-12 14:17:37
This is the result of testing bug #4865.

Linux - Google Chrome v34.0.1847.132
------------------------------------

[1] Right shift and ctrl is sent as left counterparts.

[2] Left super is sent as right counterpart (Super_R) and right super
is sent with strange keycodes;

    KeyRelease event, serial 50, synthetic NO, window 0x1000001,
     root 0xed, subw 0x0, time 7812445, (80,92), root:(166,137),
     state 0x41, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
     XLookupString gives 0 bytes: 
     XFilterEvent returns: False

    KeyRelease event, serial 50, synthetic NO, window 0x1000001,
     root 0xed, subw 0x0, time 7813613, (80,92), root:(166,137),
     state 0x40, keycode 207 (keysym 0x0, NoSymbol), same_screen YES,
     XLookupString gives 0 bytes: 
     XFilterEvent returns: False

[3] Dead key ˇ does not work.

[4] No keys on keypad are sent as KP_ keys.

[5] Menu key brings up local application context menu, not sent into
session even if unbound from gnome-shell.

[6] Print Screen not sent into session.

[7] Pause is not sent into session.

[9] Media keys is handled locally, not sent into session. If I unbound
a mediakey X86Tools for example, it is sent into session but as wrong
key.

    local: keycode 179 (keysym 0x1008ff81, XF86Tools)
    session: keycode 222 (keysym 0xffca, F13)


Linux - FireFox v29.0
---------------------

[10] Right shift and ctrl is sent as left counterparts.

[11] Left and right super is sent as right super.

[12] No dead keys works at all.

[13] No keys on keypad are sent as KP_ keys.

[14] Print screen is handled locally, not sent into session. If i
unbound keyboard shortcut in gnome-shell, wrong keys are sent to
server, see following session side events:

    KeyPress event, serial 37, synthetic NO, window 0x3a00001,
     root 0xec, subw 0x0, time 364819555, (112,78), root:(177,933),
     state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
     XLookupString gives 0 bytes: 
     XmbLookupString gives 0 bytes: 
     XFilterEvent returns: False

    KeyPress event, serial 37, synthetic NO, window 0x3a00001,
     root 0xec, subw 0x0, time 364819555, (112,78), root:(177,933),
     state 0x1, keycode 51 (keysym 0x2a, asterisk), same_screen YES,
     XLookupString gives 1 bytes: (2a) "*"
     XmbLookupString gives 1 bytes: (2a) "*"
     XFilterEvent returns: False

    KeyRelease event, serial 37, synthetic NO, window 0x3a00001,
     root 0xec, subw 0x0, time 364819555, (112,78), root:(177,933),
     state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
     XLookupString gives 0 bytes: 
     XFilterEvent returns: False

    KeyRelease event, serial 37, synthetic NO, window 0x3a00001,
     root 0xec, subw 0x0, time 364819595, (112,78), root:(177,933),
     state 0x0, keycode 51 (keysym 0x27, apostrophe), same_screen YES,
     XLookupString gives 1 bytes: (27) "'"
     XFilterEvent returns: False

[15] No media keys are sent into session.


Windows - IE11 v11.0.9600.16521
-------------------------------

[16] Right ctrl, shift is sent as left counterpart

[17] altgr is sent as (Control_L + Alt_L)

[18] right super is sent as (Shift_L + Hyper_L)

[19] ǔ, ũ, ç, ů doesn't work at all. I assume this is a side affect of
windows sending control+alt instead of altgr.

[20] No keys on keypad are sent as KP_

[21] No media keys are sent into session.

[22] pause is not sent into session.

[23] print screen is not sent into session.


Windows - FireFox v29.0
-----------------------

[24] Right ctrl, shift is sent as left counterpart

[25] Left and rigth super is both sent as Super_R

[26] altgr is sent as (Control_L + Alt_L)

[27] No altgr based deadkeys are working, same reason as with IE11

[28] No keys on keypad are sent as KP_

[29] No media keys works except that volume up / down was sent into
session but with strange symbols.

       Volume Up: keycode 178 (keysym 0xb7, periodcentered)
    Volumer Down: keycode 254 (keysym 0xb6, paragraph)

[30] print screen not sent into session.

[31] pause not set into session.


Windows - Google Chrome v34.0.1847.131 m
----------------------------------------

[32] Right ctrl, shift is sent as left counterpart

[33] Left super is sent as Super_R

[34] Right super is sent as (Shift_L + Hyper_L)

[35] altgr is sent as (Control_L + Alt_L)

[36] No altgr based deadkeys are working, same reason as with IE11

[37] No keys on keypad are sent as KP_ keys.

[38] No media keys is sent into session.

[39] pause is not sent into session.

[40] print screen is not sent into session.


Mac OS X - FireFox v29.0
------------------------

[41] Right ctrl, shift, alt (Mac keyboard) is sent as left counterpart.

[42] Command key is sent as (Shift_L + Meta_L), ISO_Group_Lock

[43] Dead keys are broken in several ways, I couldn't find any that
worked at all.  If you hit _grave_ you will end up with a capital
_agrave_;

    KeyPress event, serial 82, synthetic NO, window 0x1000001,
     root 0xed, subw 0x0, time 27122545, (138,70), root:(224,115),
     state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
     XLookupString gives 0 bytes: 
     XmbLookupString gives 0 bytes: 
     XFilterEvent returns: False

    KeyPress event, serial 82, synthetic NO, window 0x1000001,
     root 0xed, subw 0x0, time 27122545, (138,70), root:(224,115),
     state 0x1, keycode 154 (keysym 0xc0, Agrave), same_screen YES,
     XLookupString gives 2 bytes: (c3 80) "À"
     XmbLookupString gives 2 bytes: (c3 80) "À"
     XFilterEvent returns: False

    KeyRelease event, serial 82, synthetic NO, window 0x1000001,
     root 0xed, subw 0x0, time 27122545, (138,70), root:(224,115),
     state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
     XLookupString gives 0 bytes: 
     XFilterEvent returns: False

    KeyRelease event, serial 82, synthetic NO, window 0x1000001,
     root 0xed, subw 0x0, time 27122646, (138,70), root:(224,115),
     state 0x0, keycode 154 (keysym 0xe0, agrave), same_screen YES,
     XLookupString gives 2 bytes: (c3 a0) "à"
     XFilterEvent returns: False

[44] Num lock has no effect, neither on mac and pc keyboard. Numbers
are always sent.

[45] No keys on keypad is sent as KP_ keys.

[46] F11, F12, F14 ,F15 (Mac keyboard) is not sent into session.

[47] F13 (Mac) is sent as _comma_ into session

[48] No media keys are sent into session

[49] Print screen (PC) is sent as _comma_ into session, same physical
placement as F13 on mac keyboard.

[50] Pause not sent into session.

[51] Num lock doesn't work at all, locally on mac.


Mac OS X - Google Chrome v34.0.1847.131
---------------------------------------

[52] Left / right command sent as (Shift_L + Meta_L)

[53] Right shift,ctrl,alt (mac) sent as left counterpart

[54] atlgr (PC) sent as Alt_L

[55] No dead keys works at all

[56] Num lock has no effect, neither on mac and pc keyboard. Numbers
are always sent.

[57] No  keys on keypad is sent as KP_ keys.

[58] F11, F12 is captured locally and not sent into session.

[59] F14, F16 (Mac) is not sent into session.

[60] Menu key (PC) is sent as Shift_L

[61] No media keys are sent into session

[62] Print screen (PC) is sent as F13, same physical key as F13 key on
Mac keyboard.

[63] Num lock doesn't work at all, locally on mac.


Mac OS X - Safari v7.0.3
------------------------

[64] Right shift,ctrl,alt (mac) sent as left counterpart

[65] Left command key is sent into session as (Shift_L + Meta_L) + Super_R

[66] Right command key is sent into session as (Shift_L + Meta_L) + Menu

[67] Menu key (PC) is sent as Shift_L

[68] alt+space is sent as (Alt_L + nobreakspace)

[69] Alt state can be hung within a session pressing the following key
sequence on a PC keyboard. No KeyRelease will be sent for Meta_L and
the concequenses are that any key sent is modified by alt until alt
key is pressed to release the state. The problem is probably in the
javascript code. (All browsers)

  menu (down) -> windows (down) -> menu (up) -> windows (up)


[70] No dead keys works at all

[71] No keys on keypad is sent as KP_ keys

[72] Num lock has no effect, neither on mac and pc keyboard. Numbers
are always sent.

[73] F11,F12 is captured locally and not sent into session.

[74] F14, F15 is not sent into session.

[75] menu key (PC) sent as Shift_L

[76] No media keys

[77] Print Screen sent as F13 (PC)

[78] Num lock doesn't work at all, locally on mac.


iPad iOS v7.1.1 - Safari - Virtual Keyboard
-------------------------------------------

[79] pinyin suggestions are somewhat shown.

[80] pinyin several keys are not working; :;().?!

[81] swedish input, the kr key is sent as k

[82] Media key doesnt work (vol up/down)


iPad iOS v7.1.1 - Safari - HW Keyboard (Apple Wireless)
-------------------------------------------------------

[83] Failed to produce any char using altgr + 1-9 eg @

[84] ESC is not sent into session.

[85] Lost of focus eg. clipboard turns keyboard input off.

[86] command, ctrl, alt or shift is not sent into session as their
corresponding key, however as example (Shift_L + a) sends a virtual
shift key press and produces correctly a uppercase a.

[87] ctrl key produces (Shift_L + Meta_L) into session.

[88] Pressing another deadkey after an initial deadkey produces a
backspace.

[89] No dead keys works

[90] F1-F12 is not sent into session.

[91] No media keys works

[92] Caps-lock is sent as Control_L + <key>, sometimes there is
no KeyRelease send for key and sometimes no KeyRelease for Control_L



iPad iOS v7.1.1 - Chrome v34.0.1847.18 - Virtual Keyboard
---------------------------------------------------------

I can't even log in to a session, hangs here and there during loading
of resource.


Android - Chrome v34.0.1847.114 - Virtual Keyboard
--------------------------------------------------

[93] Many symbols are sent into session but no symbol shown for the
following symbols; • √ Π ∆ ™ ℅ 

[94] Suggestions are shown which breaks expected behaviours if used.

[95] Pinyin, broken in several ways, cant write any words not even space
or enter sends any key presses.

[96] Pinyin, 123 keyboard, colon sent but with shift_l

[97] Pinyin, symbols not sent into session; ~ … ❝ ❞ 

[98] No media keys works (Volume Up/Down)


Android - FireFox v29.0.1 - Virtual Keyboard
--------------------------------------------

[99] Many symbols are sent into session (noname) but no symbol is
matched and shown for the following; • √ Π ∆ ™ ℅

[100] Pinyin, ¥ is not sent into session.

[101] Pinyin, Parenteses on second screen is sent as backspace and
ISO_Left_Tab.

[102] Pinyin, There are a lot of symbols sent as noname and some not
sent at all into session.

[103] No media keys works (Volume Up/Down)


Android - Chrome v34.0.1847.114 - Hardware Keyboard (USB)
---------------------------------------------------------

[104] Failed to produce any char using altgr + 1-9 eg. no @

[105] Shift got stuck and with no corresponding key release is sent

[106] altgr sent as Alt_L

[107] Right ctrl, shift sent as corresponding left key

[108] left windows key sent as Super_R

[109] right windows key sent as (Shift_L + Hyper_L)

[110] None of the dead keys are sent into session.

[111] Without numlock, no keys are working except for; / * - + keys.

[112] With numlock, all keys works except for; enter

[113] With numlock, comma is sent as period

[114] Menu key is trapped by browser

[115] Pause not sent into session

[116] Print screen, trapped locally

[117] No media keys are working


Android - FireFox  - Hardware Keyboard (USB)
--------------------------------------------

[118] Failed to produce any char using altgr + 1-9 eg. no @

[119] altgr sent as Alt_L

[120] Right ctrl, shift, alt sent as left counterpart

[121] Both windows keys sent as (Shift_L + Meta_L)

[122] Dead key ' send as = into session

[123] No dead keys works

[124] Without numlock, / * - + and enter works as expected, ther rest of
the keys produces wrong symbols (keys 1-9 produces symbols a-i) etc.

[125] With numlock, everything works as expected except that comma is
sent as period.

[126] Menu key is trapped by browser

[127] Pause not sent into session

[128] Print screen is trapped locally
------- Comment #1 From cendio 2014-05-12 14:18:03 -------
Created an attachment (id=543) [details]
Test report from bug4865
------- Comment #2 From cendio 2014-11-26 10:48:36 -------
The following points were fixed in bug 5369:

[2], [11], [18], [25], [33], [34], [42], [108] and [109]
------- Comment #3 From cendio 2014-11-26 13:53:05 -------
(In reply to comment #2)
> The following points were fixed in bug 5369:
> 
> [2], [11], [18], [25], [33], [34], [42], [108] and [109]

Testing shows that [11] and [25] were in fact not resolved. The issue seems to
lie in the browser.

To clarify:

[2] the correct Super is now sent, but the additional strange events are still
appearing.
[11] Not fixed, no difference
[18] Fixed
[25] Not fixed, no difference
[33] Fixed
[34] Fixed
[42] ISO_Group_Lock is not sent anymore, Super_L is sent instead, which can be
argued to be better in this case.
[108] Fixed
[109] Fixed

I also noticed, regarding [58] that F12 is now sent properly into the session.
------- Comment #4 From cendio 2015-05-19 13:57:54 -------
Note:

It seems like the special solution which was implemented in bug 4602 for the
on-screen keyboard on Android isn't used for most keys on Chrome and Firefox
anymore.

I have not made any thorough tests here but it seems the special solution is
used for all non-US characters and for backspace. Normal keyboard events are
sent otherwise.
------- Comment #5 From cendio 2016-01-27 11:34:38 -------
Did keyboard testing for Microsoft Edge on Windows 10, for bug 5642. The
results where quite similar but with a few differences compared to IE:

Windows 10 - Edge v25.10586.0.0
-------------------------------

[129] Right ctrl is sent as Control_L 

[130] Right shift is sent as Shift_L

[131] altgr is sent as (Control_L + Alt_L)

[132] ǔ, ũ, ç, ů doesn't work at all, probably side affect of windows sending
control+alt instead of altgr

[133] Keypad keys are sent as the normal counterpart, i.e. pressing 1 on the
keypad doesn't sent "KP_1", it sends "1"

[134] Keypad plus is sent as (Shift_L + plus), however only a keypress is sent
for the plus and a keyrelease for equal is sent..

[135] Keypad asterisk is sent as (Shift_L + asterisk), however only a keypress
is sent for the asterisk and a keyrelease for 8 is sent..

[136] Media keys are not sent into session

[137] Pause is not sent into session

[138] Print screen is not sent into session
------- Comment #6 From cendio 2016-04-08 13:30:42 -------
*** Bug 5838 has been marked as a duplicate of this bug. ***
------- Comment #7 From cendio 2016-12-02 10:16:28 -------
(In reply to comment #0)
> 
> [123] No dead keys works
> 

I had a look at this and it does not seem to be solvable with the current state
of browsers. No event contains information that can allow us to deduce the
correct character. It might be possible if we knew the layout, but that
information isn't readily available.

Bug 4560 might be a way to solve this as Firefox and Chrome have started
including information that allows Javascript to deduce the physical key
pressed.