[Bug 23910] What's the good .key value while IME is open?

https://www.w3.org/Bugs/Public/show_bug.cgi?id=23910

Travis Leithead [MSFT] <travil@microsoft.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #5 from Travis Leithead [MSFT] <travil@microsoft.com> ---
(In reply to Masayuki Nakano from comment #4)
> It might be good to set "IMEKey" or something during composition if we use
> "DeadKey" for dead key.
> 
> * Actual input character will be provided by composition events or input
> events.
> * KeyboardEvent.code might help if web apps need to distinguish keys even
> during composition.

Note: Bug 24044 recommends "DeadKey" for the 'key' value during a dead-key
sequence.

Thinking about this a bit--it makes sense to me. Given the note about how some
OS's use IMEs to represent dead-keys would mean that JavaScript code might
already need to have a condition that handles "DeadKey"? Rather than make them
have two conditions "DeadKey" || "IMEKey", we should consider just using one,
and I think I would recommend "IMEKey" be used for both to promote recognition
of how the dead keys should be typical recognized.

I wanted to clarify: are you suggesting having key be "IMEKey" whenever any
composition is in progress, or just when KanaMode is enabled?

Here's what would need to change (I think I captured everything) to make the
key value "IMEKey":

Example 22 - 3rd row, key becomes "DeadKey" (or "IMEKey"?) was "DeadAcute"
Prose of section 6.4.3.
Example 33 - (Add .code to the table too!)
   Event Name        .key       .isComposing  .data     Notes
-----------------------------------------------------------------
1. keydown           'DeadKey'* false                   Combining Circumflex
Accent 
2. compositionstart                           ''  
3. compositionupdate                          '\u0302'  
4. keyup             'DeadKey'  true   
5. keydown           'IMEKey'   true                    (Typically suppressed)
6. compositionupdate                          'ê'  
7. compositionend                             'ê'  
8. keyup             'IMEKey'   false                   Latin Small Letter E
(Typically suppressed)


Example 34 - (Add .code to the table too!)
   Event Name        .key       .isComposing  .data     Notes
-----------------------------------------------------------------
1. keydown           'DeadKey'* false                   Combining Circumflex
Accent 
2. compositionstart                           ''  
3. compositionupdate                          '\u0302'  
4. keyup             'DeadKey'  true   
5. keydown           'IMEKey'   true                    Latin Small Letter Q
(Typically suppressed)
6. compositionupdate                          ''  
7. compositionend                             ''  
8. keyup             'IMEKey'   false                   (Typically suppressed)


Example 35 - (Add .code to the table too!)
   Event Name        .key       .isComposing  .data     Notes
-----------------------------------------------------------------
1. keydown           's'        false                   Latin Small Letter S 
2. compositionstart                           ''  
3. compositionupdate                          's'  
4. keyup             's'        true   
5. keydown           'IMEKey'   true                    Latin Small Letter I
(Typically suppressed)
6. compositionupdate                          'し'  
7. keyup             'IMEKey'   true                    (Typically suppressed)
8. keydown           'Convert'  true                    Convert (Typically
suppressed)
9. compositionupdate                          '詩'  
10. keyup            'Convert'  true                    (Typically suppressed)
11. keydown          'Convert'  true                    Convert (Typically
suppressed)
12. compositionupdate                         '市'  
13. keyup            'Convert'  true                    (Typically suppressed)
14. keydown          'Accept'   true                    Accept (Typically
suppressed)
15. compositionend                            '市'  
16. keyup            'Accept'   false                   (Typically suppressed)

Example 36 - (Add .code to the table too!)
   Event Name        .key       .isComposing  .data     Notes
-----------------------------------------------------------------
1. keydown           's'        false                   Latin Small Letter S 
2. compositionstart                           ''  
3. compositionupdate                          's'  
4. keyup             's'        true   
5. keydown           'IMEKey'   true                    Latin Small Letter I
(Typically suppressed)
6. compositionupdate                          'し'  
7. keyup             'IMEKey'   true                    (Typically suppressed)
8. keydown           'Convert'  true                    Convert (Typically
suppressed)
9. compositionupdate                          '詩'  
10. keyup            'Convert'  true                    (Typically suppressed)
11. keydown          'Convert'  true                    Convert (Typically
suppressed)
12. compositionupdate                         '市'  
13. keyup            'Convert'  true                    (Typically suppressed)
14. keydown          'Cancel'   true                    Cancel (Typically
suppressed)
15. compositionupdate                         ''  
16. compositionend                            ''  
17. keyup            'Cancel'   false                   (Typically suppressed)

WDYT?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Tuesday, 22 April 2014 00:12:23 UTC