New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 642800 link

Starred by 10 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task



Sign in to add a comment

Re-specify inputmode in W3C and make it available on content-editable

Project Member Reported by dtapu...@chromium.org, Aug 31 2016

Issue description

The HTML5 spec identifies inputmode: https://html.spec.whatwg.org/multipage/forms.html#input-modalities:-the-inputmode-attribute

But it doesn't map well onto the keyboard modes supported on mobile platforms today

https://docs.google.com/document/d/1byGrlstGjZ7jGk0ZjP23AtlNB2Rfe6iSZtREszHLeAI/edit

No recent browser has shipped an inputmode implementation (it existed in the XHTML 1.1 Basic Spec). So it is possible to re-specify it to map onto something that is sensible.
 
Labels: Hotlist-Input-Dev
Discussion moved to a HTML5 spec issue:

https://github.com/whatwg/html/issues/1897

Project Member

Comment 4 by bugdroid1@chromium.org, Nov 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d82b0b1856c7982bac88fdc12f40752b1191be81

commit d82b0b1856c7982bac88fdc12f40752b1191be81
Author: dtapuska <dtapuska@chromium.org>
Date: Tue Nov 29 00:51:42 2016

Add inputmode to android ImeAdapater.

When an inputmode is specified it overrides the default text input type.
inputmode is behind an experimental web platform flag but it allows
the author to configure what virtual keyboard is shown for the various
input and content editable fields.

BUG= 642800 
TBR=aelias@chromium.org

Review-Url: https://codereview.chromium.org/2523753003
Cr-Commit-Position: refs/heads/master@{#434804}

[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/browser/android/content_view_core_impl.cc
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/browser/android/content_view_core_impl.h
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/java/src/org/chromium/content/browser/input/ChromiumBaseInputConnection.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/java/src/org/chromium/content/browser/input/ImeUtils.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/java/src/org/chromium/content/browser/input/ReplicaInputConnection.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/java/src/org/chromium/content/browser/input/ThreadedInputConnectionFactory.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/javatests/src/org/chromium/content/browser/input/ReplicaInputConnectionTest.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/content/public/android/junit/src/org/chromium/content/browser/input/ThreadedInputConnectionFactoryTest.java
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/third_party/WebKit/public/BUILD.gn
[modify] https://crrev.com/d82b0b1856c7982bac88fdc12f40752b1191be81/third_party/WebKit/public/platform/WebTextInputMode.h

Cc: dtapu...@chromium.org n...@chromium.org ojan@chromium.org
 Issue 582122  has been merged into this issue.

Comment 6 by owe...@chromium.org, Sep 12 2017

Labels: migrated-launch-owp Type-Task
This issue has been automatically relabelled type=task because type=launch-owp issues are now officially deprecated. The deprecation is because they were creating confusion about how to get launch approvals, which should be instead done via type=launch issues.

We recommend this issue be used for implementation tracking (for public visibility), but if you already have an issue for that, you may mark this as duplicate.

For more details see here: https://docs.google.com/document/d/1JA6RohjtZQc26bTrGoIE_bSXGXUDQz8vc6G0n_sZJ2o/edit

For any questions, please contact owencm, sshruthi, larforge
Project Member

Comment 7 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c5576b39da7ebf26916ed3ea2a9bf080379ea83b

commit c5576b39da7ebf26916ed3ea2a9bf080379ea83b
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Thu Dec 21 18:45:46 2017

Adjust Input Mode to match the current version of the HTML spec.

This change removes the latin-, kana- text modes and adds Text, None,
Numeric, Decimal and Search values.

This flag is still behind a feature flag and not enabled by default.

BUG= 642800 

Change-Id: I1b698a20275062dc39dc3c8588b38d65f5c3d1fe
Reviewed-on: https://chromium-review.googlesource.com/817654
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525751}
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/content/child/assert_matching_enums.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/content/public/android/java/src/org/chromium/content/browser/input/ImeUtils.java
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/content/renderer/render_view_browsertest.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/services/ui/public/interfaces/ime/ime.mojom
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/services/ui/public/interfaces/ime/ime_struct_traits.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/services/ui/public/interfaces/ime/ime_struct_traits_unittest.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/external/wpt/html/dom/elements-forms.js
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/external/wpt/html/dom/elements-misc.js
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/external/wpt/html/dom/interfaces-expected.txt
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/external/wpt/html/dom/reflection-forms-expected.txt
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/external/wpt/html/dom/reflection-misc-expected.txt
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/external/wpt/interfaces/html.idl
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/fast/dom/element-attribute-js-null-expected.txt
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/LayoutTests/fast/dom/element-attribute-js-null.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/LayoutTests/fast/forms/input-inputmode-expected.txt
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/LayoutTests/fast/forms/input-inputmode.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-inputmode-expected.txt
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/LayoutTests/fast/forms/textarea/textarea-inputmode.html
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/editing/ime/InputMethodController.cpp
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/editing/ime/InputMethodControllerTest.cpp
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/editing/input_mode_names.json5
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/exported/WebViewTest.cpp
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/html/HTMLElement.idl
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_default_verbatim.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_textarea_verbatim.html
[add] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/testing/data/input_mode_type_decimal.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_full_width_latin.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_kana.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_kana_name.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_kata_kana.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_latin.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_latin_name.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_latin_prose.html
[add] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/testing/data/input_mode_type_none.html
[add] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/testing/data/input_mode_type_search.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_search_verbatim.html
[add] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/Source/core/testing/data/input_mode_type_text.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_text_verbatim.html
[delete] https://crrev.com/fb97a85846f0db0f71c4e16ed5ab5e29c7892445/third_party/WebKit/Source/core/testing/data/input_mode_type_url_verbatim.html
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/third_party/WebKit/public/platform/WebTextInputMode.h
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/ui/base/ime/input_method_chromeos_unittest.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/ui/base/ime/text_input_mode.h
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/ui/base/ime/win/imm32_manager.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/ui/base/ime/win/imm32_manager_unittest.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/ui/base/ime/win/tsf_input_scope.cc
[modify] https://crrev.com/c5576b39da7ebf26916ed3ea2a9bf080379ea83b/ui/base/ime/win/tsf_input_scope_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/48e2ac3a331f80e8bd5cbe54df53643c9f2481c7

commit 48e2ac3a331f80e8bd5cbe54df53643c9f2481c7
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Thu Jan 18 18:03:49 2018

Make InputModeNone work on ChromeOS.

InputMode="none" indicates not to display the virtual keyboard
despite the content being still editable. IME input from a physical
keyboard should still work.

BUG= 642800 

Change-Id: I2467b1984ac1804f074f076d3e69169e2cdcc364
Reviewed-on: https://chromium-review.googlesource.com/868326
Reviewed-by: Shu Chen <shuchen@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530198}
[modify] https://crrev.com/48e2ac3a331f80e8bd5cbe54df53643c9f2481c7/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/48e2ac3a331f80e8bd5cbe54df53643c9f2481c7/ui/base/ime/dummy_text_input_client.cc
[modify] https://crrev.com/48e2ac3a331f80e8bd5cbe54df53643c9f2481c7/ui/base/ime/dummy_text_input_client.h
[modify] https://crrev.com/48e2ac3a331f80e8bd5cbe54df53643c9f2481c7/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/48e2ac3a331f80e8bd5cbe54df53643c9f2481c7/ui/keyboard/keyboard_controller_unittest.cc

Hi there, which milestone is this targeting? It might be useful for us to use with Google Slides for Chromebooks.
Cc: changwan@chromium.org
Something to note about https://chromium-review.googlesource.com/c/chromium/src/+/850945

It might be worth noting that, on Android, inputmode="none" does not guarantee that keyboard remains hidden because of the peculiarities of how Android handles a physical keyboard.

Here are some observations from my testing:

1) Physical keyboard works without calling ‘showSoftInput’, although most IMEs don’t show UIs until you type the first key.

2) When you have turned on ‘Show virtual keyboard’, typing a physical key shows virtual keyboard even when you never call ‘showSoftInput’.

3) When you haven't turned on 'Show virtual keyboard', then 'showSoftInput' does not show virtual keyboard.

Because of 2) and 3), there is no way to ensure the keyboard to be hidden, and I think it makes sense to reuse the existing logic as much as possible.

This is something that wasn't clear to me, so some of my initial review comments might have been misleading. Assuming that we have no easy workaround for this limitation on Android anyways, I think we can go ahead with the current approach. Let me resume the code review.

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d678ae5b56311e26854faa6853fbb49ec7a2eab1

commit d678ae5b56311e26854faa6853fbb49ec7a2eab1
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Fri Feb 09 23:43:34 2018

Make inputmode="none" work on Android.

Inputmode is still an experimental web platform feature but allow
inputmode="none" to allow the keyboard to be hidden and treat it
as not being editable yet the focus is still retained to be on
an editable field.

BUG= 642800 

Change-Id: I176179b94bc11e6bd7193551b8f76ee67f3f3e5b
Reviewed-on: https://chromium-review.googlesource.com/850945
Reviewed-by: Changwan Ryu <changwan@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535884}
[modify] https://crrev.com/d678ae5b56311e26854faa6853fbb49ec7a2eab1/content/public/android/BUILD.gn
[modify] https://crrev.com/d678ae5b56311e26854faa6853fbb49ec7a2eab1/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapterImpl.java
[modify] https://crrev.com/d678ae5b56311e26854faa6853fbb49ec7a2eab1/content/public/android/javatests/src/org/chromium/content/browser/input/ImeActivityTestRule.java
[add] https://crrev.com/d678ae5b56311e26854faa6853fbb49ec7a2eab1/content/public/android/javatests/src/org/chromium/content/browser/input/ImeInputModeTest.java
[modify] https://crrev.com/d678ae5b56311e26854faa6853fbb49ec7a2eab1/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
[add] https://crrev.com/d678ae5b56311e26854faa6853fbb49ec7a2eab1/content/test/data/android/input/input_mode.html

Labels: M-66
Status: Fixed (was: Assigned)
Project Member

Comment 13 by bugdroid1@chromium.org, May 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/136b103c02022542ca0da7f60f949f69fc3c4fb3

commit 136b103c02022542ca0da7f60f949f69fc3c4fb3
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Wed May 02 14:13:08 2018

Remove InputMode runtime enabled feature.

Now that input mode has shipped in a stable release remove the setting.

BUG= 642800 

Change-Id: I0aecb0261ba17be7bd911fc2c420d0e3c5dd783f
Reviewed-on: https://chromium-review.googlesource.com/1037983
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555380}
[modify] https://crrev.com/136b103c02022542ca0da7f60f949f69fc3c4fb3/third_party/blink/renderer/core/editing/ime/input_method_controller.cc
[modify] https://crrev.com/136b103c02022542ca0da7f60f949f69fc3c4fb3/third_party/blink/renderer/core/html/html_element.idl
[modify] https://crrev.com/136b103c02022542ca0da7f60f949f69fc3c4fb3/third_party/blink/renderer/platform/runtime_enabled_features.json5

Sign in to add a comment