Bug 5135 - Keyboard problems with Web Access
Summary: Keyboard problems with Web Access
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Web Access (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.11.0
Assignee: Pierre Ossman
URL:
Keywords: relnotes
: 5838 (view as bug list)
Depends on: 5369 6152 7365
Blocks: keyboard
  Show dependency treegraph
 
Reported: 2014-05-12 14:17 CEST by Henrik Andersson
Modified: 2019-11-05 12:35 CET (History)
2 users (show)

See Also:
Acceptance Criteria:


Attachments
Test report from bug4865 (17.21 KB, text/x-markdown)
2014-05-12 14:18 CEST, Henrik Andersson
Details

Description Henrik Andersson cendio 2014-05-12 14:17:37 CEST
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 Henrik Andersson cendio 2014-05-12 14:18:03 CEST
Created attachment 543 [details]
Test report from bug4865
Comment 2 Samuel Mannehed cendio 2014-11-26 10:48:36 CET
The following points were fixed in bug 5369:

[2], [11], [18], [25], [33], [34], [42], [108] and [109]
Comment 3 Samuel Mannehed cendio 2014-11-26 13:53:05 CET
(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 Samuel Mannehed cendio 2015-05-19 13:57:54 CEST
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 Samuel Mannehed cendio 2016-01-27 11:34:38 CET
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 Pierre Ossman cendio 2016-04-08 13:30:42 CEST
*** Bug 5838 has been marked as a duplicate of this bug. ***
Comment 7 Pierre Ossman cendio 2016-12-02 10:16:28 CET
(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.
Comment 9 Pierre Ossman cendio 2019-10-31 10:52:10 CET
The keyboard code got a major rewrite in bug 6152 and many of the issues listed here were fixed. Some still remain though, but see bug 6152 for what's left.
Comment 10 Pierre Ossman cendio 2019-11-05 12:35:16 CET
Testing done on bug 6135.

Note You need to log in before you can comment on or make changes to this bug.