Keyboards
原文:https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/keyboards/
hr.icon
このシステムでは、さまざまなタイプの入力を可能にするために、数種類のオンスクリーンキーボードが用意されています。
また、外付けのキーボードをiPadに接続することもできます。
外付けキーボードが利用できる場合、人々は、キーボードショートカットやキーボードナビゲーションを有効にすることで、アプリケーションがそれをサポートすることを期待します。
編集中のコンテンツの種類に合わせて、オンスクリーンキーボードを設定します。
例えば、数字と句読点のキーボードを用意すれば、数字データの入力を助けることができます。
開発者向けのガイダンスとしては、UIKeyboardTypeを参照してください。
https://gyazo.com/e9e48fbf140d571cf83a9fa13c781f0e
table: Alphabet
ASCII Capable
ASCII Capable Number Pad
Decimal Pad
Default
Email Address
Name Phone Pad
Number Pad
Numbers and Punctuation
Phone Pad
Twitter
URL
Web Search
キーボードレイアウトガイドを使うと、キーボードがインターフェースの一部のように感じられます。
また、レイアウトガイドを使用すると、キーボードが画面に表示されている間も重要なUIにアクセスできるようになります。
詳しくは、Layout Guides and Safe Areasを参照してください。
https://gyazo.com/b651eabb2384b1796522f1861885d506
https://gyazo.com/132fb4bed64d9e59e7f7ed860a16f870
https://gyazo.com/fb38a37d3072cdfd430053e3f6e0455c
カスタムキーボードの作成方法については、Custom Keyboardsをご覧ください。
Responding to Keyboard Shortcuts on iPad
iPadアプリは、元に戻す、やり直し、貼り付けとスタイルの一致、印刷など、システムで定義されたコマンドのキーボードショートカットをサポートするだけでなく、アプリ固有のコマンドのカスタムショートカットを提供することができます。
iPadOS 15以降では、アプリのキーボードショートカットは、Commandキーを押したときに表示されるショートカットインターフェースに表示されます。
iPadのショートカットインターフェースは、Macのアプリのメニューバーメニューに似た構成で、アプリのコマンドが「ファイル」「編集」「表示」などのシステムで定義されたメニューカテゴリーに表示されます。
メニューバーメニューとは異なり、iPadのインターフェースでは、関連するすべてのカテゴリーが一度に表示され、各カテゴリー内にはショートカットを持つ利用可能なコマンドのみがリストアップされます。
https://gyazo.com/0ee482134941f4286b8c6fa1622fa34e
iPadOSのキーボードショートカットはメニューシステムに依存しているため、メニューに新しいコマンドを追加することで、新しいショートカットを追加することができます。
開発者向けのガイダンスとしては、UIMenuBuilderを参照してください。
アプリケーションの機能を提供するための主要な手段として、ショートカットインターフェイスを使用することは避けてください。
ショートカットインターフェースは、利用可能なキーボードショートカットを知るのに役立ちますが、アプリがサポートするすべてのコマンドをリストアップするものではありません。
ボタンやツールバーなど、アプリの機能を提示するための文脈に応じた方法を引き続き使用してください(ガイダンスについては、ButtonsとToolbarsを参照してください。)
アプリで意味のあるシステム定義のキーボード ショートカットを有効にします。
すでに知っているシステム定義のキーボードショートカットをサポートすることで、アプリをすばやく習得できます。
アプリ内の最も一般的な操作に対してのみ、新しいキーボードショートカットを定義します。
しかし、あまりにも多くの新しいショートカットを定義すると、ショートカットインターフェイスが乱雑になり、アプリを習得するのが難しいと思われる危険性があります。
また、アプリ固有のキーボードショートカットを最小限に抑えることで、システムで定義されているショートカットとの競合を避けることができます。
詳しくは、Defining Keyboard Shortcutsを参照してください。
一般に、標準のキーボードショートカットをカスタムアクションに再利用しないでください。
知っているショートカットがアプリ内で異なる動作をすると、ユーザーは混乱します。
標準的なショートカットの再定義は、そのアクションがアプリで意味をなさない場合にのみ検討してください。
たとえば、テキスト編集をサポートしていないアプリでは、「イタリック」のようなテキストスタイルコマンドは必要ありません。
そのため、「情報を見る」など、アプリ内でより関連性の高いアクションにCommand-Iを使用することがあります。
利用可能なアクションを見つけやすくするために、説明的なコマンドタイトルを用意する。
iPadのショートカットインターフェイスでは、各カテゴリーのすべてのアイテムがフラットに表示されるため、サブメニューのタイトルは、その子アイテムのコンテキストを提供するためには利用できません。
たとえば、「名前」と「追加日」という項目タイトルは、「ブックマークの並べ替え」というサブメニューのタイトルがなければ意味をなしません。
ブックマークを名前で並べ替え」や「ブックマークを追加日で並べ替え」など、必要なコンテキストを含めることで、各項目のタイトルを強化することができます。
開発者向けのガイダンスとして、discoverabilityTitleを参照してください。
必要に応じてキーボードショートカットのローカライズとミラーリングをシステムに任せる。
iPadOSは、現在接続されているキーボードに対応するように、ショートカットの主キーと修飾キーを自動的にローカライズします。
また、アプリが右から左へのレイアウトに切り替わった場合、システムは自動的にショートカットをミラーリングします。
関連するガイダンスは、Right to Leftを参照してください。
ドラッグ操作で期待される修飾子をサポートします。
たとえば、Commandを押しながらドラッグするとアイテムがグループとして移動し、Shiftを押しながらドラッグしてサイズを変更するとアイテムの縦横比に制限されます。
キーを押し続けたときの期待に応える。
例えば、矢印キーを押したままにすると、キーを離すまでの間、アプリが定義した最小単位の距離だけ、選択したアイテムが移動します。
Supporting Keyboard Navigation on iPad
キーボードナビゲーションでは、ハードウェアキーボードを使ってアプリの主要機能を操作したり、アイテムを選択したりすることができます。
デフォルトでは、iPadOS 15は、テキストフィールド、テキストビュー、およびサイドバーでキーボードナビゲーションを有効にし、アプリ内の様々なタイプのコレクションビューやその他のカスタムビューでキーボードナビゲーションを有効にするために使用できるAPIを提供します。
開発者向けのガイダンスについては、Focus-Based Navigationを参照してください。
重要事項
ボタン、セグメント化されたコントロール、スイッチなどのコントロールに対してキーボードナビゲーションを有効にすることは避けてください。
キーボードに完全にアクセスできると、コントロールをアクティブにしたり、画面上のすべての要素に移動したり、ドラッグ&ドロップなどのジェスチャーベースのインタラクションを実行したりするのに役立ちます。
iPadOS 15以降のキーボードナビゲーションは、tvOSのフォーカスシステムに依存しています。
このシステムでは、フォーカスインジケーターをアイテムに移動させ、それを選択することでアクションを実行します(詳しくは Focus and Selectionをご覧ください。)
tvOSは方向性フォーカスを採用しているので、Siri Remoteをスワイプしたり、接続したキーボードの矢印キーだけを使ったりと、同じ操作で画面上のすべての要素に移動することができます。
これに対してiPadOSでは、サイドバー、グリッド、リストなど、アプリ内の特定のエリアを表すフォーカスグループを定義しています。
フォーカスグループを使うことで、iPadOSは2つの異なるキーボード操作に対応することができます。
Tabキーを押すと、フォーカスグループ間でフォーカスが移動し、サイドバーやグリッドなどのアプリ内のエリアに移動することができます。
一方、矢印キーを押すと、フォーカスの方向を変えることができます。これはtvOSと似ていますが、同じフォーカスグループ内のアイテム間の移動に限られます。例えば、リストやサイドバーの中のアイテムを矢印キーで移動することができます。
画面上の要素は、「ハロー効果」やハイライト表示を使ってフォーカスを示すことができます。
フォーカスリングとも呼ばれる「ハロー効果」は、要素の周囲にカスタマイズ可能なアウトラインを表示します。
「ハロー効果」は、カスタムビューや、コレクションやリストセル内の完全に不透明なコンテンツ(画像など)に適用できます。
https://gyazo.com/b48220743692180405b3789eb2b827a5
必要に応じてハロフォーカス効果をカスタマイズできます。
デフォルトでは、システムはアイテムの形状を使用してそのハロの形状を推測します。
システムが提供する光の輪では希望の外観が得られない場合は、角を丸くしたような輪郭やベジェパスで定義された形状に合わせて光の輪を調整できます。
また、他の要素がハロを遮ったり、クリップしたりする場合に、ハロの位置を調整することもできます。
たとえば、バッジがハローの上に表示されるようにしたり、親ビューがハローをクリップしないようにする必要があります。
開発者向けのガイダンスとして、UIFocusHaloEffectを参照してください。
https://gyazo.com/e4eea21e08ce6329493df17a7a411d48
要素の背景にアプリの色合いが使われているハイライト表示も、フォーカスを示すものですが、フォーカスエフェクトではありません。
ハイライト表示は、背景やコンテンツの設定を行ったコレクションビューセルが選択されると、自動的に行われます(開発者向けのガイダンスは、UICollectionViewCellを参照してください。)
https://gyazo.com/e30fafbf742694c14153e7a54f1ce079
カスタムビューでは、フォーカスが意味のある方法で移動するようにします。
人々がTabキーを押し続けると、フォーカスはフォーカスグループの中を、先頭から後続、上から下の順に読み進んでいきます。
フォーカスはシステムが提供するビューを人々が期待する方法で移動しますが、フォーカスシステムがカスタムビューを訪問する順序を調整する必要があるかもしれません。
例えば、垂直方向に積み重ねられたカスタムビューを下に移動してから、次のビューに後続する方向に移動するようにしたい場合は、スタックコンテナを1つのフォーカスグループとして識別する必要があります。
開発者向けのガイダンスとしては、focusGroupIdentifierを参照してください。
フォーカスグループ内での重要性を反映して、アイテムの優先度を調整します。
グループにフォーカスが当たると、そのプライマリアイテムにも自動的にフォーカスが当たるので、最も欲しいと思うアイテムを簡単に選ぶことができます。
アイテムの優先度を上げることで、そのアイテムをプライマリにすることができます。
開発者向けのガイダンスは、UIFocusGroupPriorityを参照してください。
<-- Haptics
--> Near Field Communication