これは、キーボード、マウス、およびタッチスクリーンを備えたMicrosoft Surfaceのようなデバイスでは、非常に面倒です。また、3つの入力モードをいつでも混在させることも、スタイラスのような別の入力方法を追加することもできます。
マイクロソフトでは、入力イベントを「ポインタイベント」として抽象化するアプローチを採用しています。このモデルhas been submitted to the W3C。これにより、入力を管理する傾向がわかります。
タッチが利用可能かどうかを確認して、—の場合は—の場合はユーザーがタッチ入力を少なくとも一部使用するという前提のもとで操作するのが便利です。これは、マウス/キーボードの機能性を損なう可能性があるにもかかわらず、完全に非友好的なものを排除するための設計上の決定につながる可能性があります。
具体的には、input[type=number]
をカスタムコントロールに置き換える必要があるかどうかを厳密に見ていきます。ほとんどのタッチデバイスは合理的に現代的ですが、多くの場合、標準のHTML入力のカスタムでタッチに優しいバージョンがあります。
ネイティブコントロールがおそらく「すぐに」サポートしているアクセシビリティシナリオも念頭に置いてください。
カスタムコントロールを実装する場合は、他の入力メカニズムが存在するかどうかに関わらず、タッチフィーチャを検出し、カスタムコントロールを表示することをお勧めします。これは、カスタムコントロールが(少なくとも)タッチ/キーボード/マウスに優しいことを保証することを意味します。
ここに私の現在のタッチテスト(それは明日破ることができ免責事項とし、確かには、すべてのデバイス上でテストされていません)です:
var supportsTouch = ("ontouchstart" in window) || window.navigator.msMaxTouchPoints > 0;
@Shmiddty JavaScriptはおそらく視覚障害のあるユーザーを暗示するスクリーンリーダーの存在を検出する可能性があります。 –