scoped
textareaコンポーネントは、複数行のテキスト入力に使用されます。ネイティブの textarea 要素は、コンポーネントの内部でレンダリングされます。ネイティブのtextareaを制御することで、textareaコンポーネントのユーザーエクスペリエンスとインタラクティブ性を向上させることができます。
ネイティブのtextarea要素とは異なり、Ionicのtextareaは要素内部のコンテンツからその値を読み込むことをサポートしていません。textareaの値はvalue属性で設定しなくてはなりません。
textareaコンポーネントはIonicのプロパティに加えて ネイティブのtextareaの属性 に対応します。
ラベルは、textareaを説明するために使用すべきです。視覚的に使用でき、ユーザーがtextareaにフォーカスしたときにスクリーンリーダーによって読み上げられます。これにより、ユーザーがtextareaの意図を理解しやすくなります。Textareaには、ラベルを割り当てるいくつかの方法があります:
label プロパティ: プレーンテキストのラベルに使用
label スロット: カスタムHTMLラベルに使用(実験的)
aria-label: スクリーンリーダーにラベルを提供するために使用されますが、表示されるラベルは追加されません
ラベルは、デフォルトでそのコンテンツの幅を占めます。 開発者は labelPlacement プロパティを使用して、ラベルがどのように配置されるかを制御することができます。
プレーンテキストのラベルは label プロパティを通して渡されるべきですが、カスタム HTML が必要な場合は、代わりに label スロットを通して渡すことができます。
この機能は、Web Component slotsのシミュレート版に依存しているため、実験的なものとみなされていることに注意してください。その結果、シミュレートされた動作はネイティブのスロットの動作と完全に一致するとは限りません。
ラベルの表示が必要ない場合でも、開発者はaria-labelを指定して、textareaがスクリーンリーダーにアクセスできるようにすべきです。
Filled Textareas
Material Designでは、テキストエリアの塗りつぶしスタイルが用意されています。アイテムの fill プロパティは "solid" または "outline" のいずれかに設定することができます。
iOSでは、Textareasのmodeをmdに設定することで、Filled Textareasを使うことができます。
コンポーネント間のスタイリングの競合のため、fillを使用するTextareaはion-item内で使用すべきではありません。
Helper & Error Text
ヘルパーテキストとエラーテキストは、helperText と errorText プロパティを使って textarea 内で使用することができます。エラーテキストは、ion-invalid と ion-touched クラスが ion-textarea に追加されていない限り表示されません。これにより、ユーザがデータを入力する前にエラーが表示されることはありません。
Angularでは、これはフォームバリデーションによって自動的に行われます。JavaScript、React、Vueでは、独自のバリデーションに基づいてクラスを手動で追加する必要があります。
Textarea Counter
textareaカウンターは、textareaの下に表示されるテキストで、textareaが受け付ける合計文字数のうち、何文字が入力されたかをユーザーに通知します。カウンターを追加する場合、デフォルトの動作は、表示される値を inputLength / maxLength としてフォーマットすることです。この動作は、counterFormatterプロパティにフォーマッタ関数を渡すことでカスタマイズすることができます。
autoGrowプロパティがtrueに設定されている場合、テキストエリアはその内容に基づいて拡大・縮小します。
clearOnEditプロパティをtrueに設定すると、テキストエリアが編集削除された後、再度入力されるとクリアされます。
startとendスロットは、textareaの両側にアイコン、ボタン、またはプレフィックス/サフィックステキストを配置するために使用できます。
この機能は、Web Component slotsのシミュレート版に依存しているため、実験的なものとみなされていることに注意してください。その結果、シミュレートされた動作はネイティブのスロットの動作と完全に一致するとは限りません。
ほとんどの場合、これらのスロットに配置されたIconコンポーネントにはaria-hidden="true"を設定すべきです。詳細については、Icon accessibility docsを参照してください。
スロットコンテンツが操作対象である場合、Buttonなどのインタラクティブ要素でラップする必要があります。これにより、コンテンツにタブで移動できるようになります。
TextareaChangeEventDetail
interface TextareaChangeEventDetail {
value?: string | null;
}
TextareaCustomEvent
必須ではありませんが、このコンポーネントから発行される Ionic イベントでより強く型付けを行うために、CustomEvent インターフェースの代わりにこのインターフェースを使用することが可能です。
interface TextareaCustomEvent extends CustomEvent {
detail: TextareaChangeEventDetail;
target: HTMLIonTextareaElement;
}
| Description | trueの場合、textareaコンテナはtextareaの内容に応じて拡大・縮小します。 |
| Attribute | auto-grow |
| Type | boolean |
| Default | false |
| Description | テキスト値がユーザーによって入力/編集される際に、自動的に大文字にするかどうか、またどのようにするかについて示します。利用可能なオプション: "off", "none", "on", "sentences", "words", "characters". |
| Attribute | autocapitalize |
| Type | string |
| Default | 'none' |
| Description | ネイティブの入力要素に autofocus 属性 を設定します。 ページロード時に要素がフォーカスされるには、これだけでは不十分かもしれません。詳しくはmanaging focusを参照してください。 |
| Attribute | autofocus |
| Type | boolean |
| Default | false |
| Description | trueの場合、編集時にフォーカスが当たった後、値がクリアされる。 |
| Attribute | clear-on-edit |
| Type | boolean |
| Default | false |
| Description | アプリケーションのカラーパレットから使用する色を指定します。デフォルトのオプションは以下の通りです。 "primary", "secondary", "tertiary", "success", "warning", "danger", "light", "medium", と "dark" です.色に関する詳しい情報は theming を参照してください。 |
| Attribute | color |
| Type | "danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string | undefined |
| Default | undefined |
| Description | テキストコントロールの可視幅を、平均文字幅で指定します。指定する場合は、正の整数である必要があります。 |
| Attribute | cols |
| Type | number | undefined |
| Default | undefined |
| Description | trueの場合、文字カウンタが使用された文字の比率と総文字数制限を表示します。カウンターを正しく計算するために、開発者は maxlength プロパティも設定する必要があります。 |
| Attribute | counter |
| Type | boolean |
| Default | false |
| Description | キーを押すたびに ionInput イベントが発生するまでの待ち時間をミリ秒単位で設定します。 |
| Attribute | debounce |
| Type | number | undefined |
| Default | undefined |
| Description | trueの場合、ユーザはテキストエリアと対話することができません。 |
| Attribute | disabled |
| Type | boolean |
| Default | false |
| Description | どのエンターキーを表示するかのブラウザへのヒント。指定可能な値。"enter", "done", "go", "next", "previous", "search", and "send". |
| Attribute | enterkeyhint |
| Type | "done" | "enter" | "go" | "next" | "previous" | "search" | "send" | undefined |
| Default | undefined |
errorText
| Description | テキストエリアの下に配置され、エラーが検出されたときに表示されるテキストです。 |
| Attribute | error-text |
| Type | string | undefined |
| Default | undefined |
| Description | アイテムの塗りつぶし。もし "solid" ならば、アイテムは背景を持つようになります。もし "outline" ならば、アイテムはボーダー付きの透明なものになります。mdモードでのみ使用可能です。 |
| Attribute | fill |
| Type | "outline" | "solid" | undefined |
| Default | undefined |
helperText
| Description | textareaの下に配置され、エラーが検出されなかった場合に表示されるテキストです。 |
| Attribute | helper-text |
| Type | string | undefined |
| Default | undefined |
| Description | どのキーボードを表示するかのブラウザへのヒント。指定可能な値。"none", "text", "tel", "url", "email", "numeric", "decimal", and "search". |
| Attribute | inputmode |
| Type | "decimal" | "email" | "none" | "numeric" | "search" | "tel" | "text" | "url" | undefined |
| Default | undefined |
| Description | textareaに関連付けられた可視ラベル。 プレーンテキストのラベルをレンダリングする必要がある場合に使用する。 両方が使用されている場合、label プロパティが label スロットよりも優先される。 |
| Attribute | label |
| Type | string | undefined |
| Default | undefined |
| Description | テキストエリアと相対的にラベルを配置する場所。"start":ラベルはLTRではテキストエリアの左側に、RTLでは右側に表示されます。"end":ラベルはLTRではテキストエリアの右側に、RTLでは左側に表示されます。"floating":ラベルは、テキストエリアにフォーカスが当たっているか、値がある場合、小さく表示され、テキストエリアの上に表示されます。それ以外の場合はtextareaの上に表示されます。"stacked":テキストエリアがぼやけた状態や値がない場合でも、ラベルは小さく表示され、テキストエリアの上に表示されます。固定":ラベルの幅が固定される以外は、"start"`と同じ動作になります。長いテキストは省略記号("...")で切り捨てられます。 |
| Attribute | label-placement |
| Type | "end" | "fixed" | "floating" | "stacked" | "start" |
| Default | 'start' |
| Description | この属性は、ユーザが入力できる最大文字数を指定します。 |
| Attribute | maxlength |
| Type | number | undefined |
| Default | undefined |
| Description | この属性は、ユーザーが入力できる最小の文字数を指定します。 |
| Attribute | minlength |
| Type | number | undefined |
| Default | undefined |
| Description | modeは、どのプラットフォームのスタイルを使用するかを決定します。
This is a virtual property that is set once during initialization and will not update if you change its value after the initial render. |
| Attribute | mode |
| Type | "ios" | "md" |
| Default | undefined |
| Description | フォームデータとともに送信されるコントロールの名 前。 |
| Attribute | name |
| Type | string |
| Default | this.inputId |
| Description | 入力が値を持つ前に表示される指示文。 |
| Attribute | placeholder |
| Type | string | undefined |
| Default | undefined |
| Description | trueの場合、ユーザーは値を変更することができません。 |
| Attribute | readonly |
| Type | boolean |
| Default | false |
| Description | trueの場合、ユーザーはフォームを送信する前に値を入力する必要があります。 |
| Attribute | required |
| Type | boolean |
| Default | false |
| Description | コントロールの可視テキスト行数。 |
| Attribute | rows |
| Type | number | undefined |
| Default | undefined |
| Description | テキストエリアの形状を指定します。round "の場合、ボーダーの半径が大きくなります。 |
| Attribute | shape |
| Type | "round" | undefined |
| Default | undefined |
| Description | trueの場合、その要素のスペルチェックと文法チェックが行われる。 |
| Attribute | spellcheck |
| Type | boolean |
| Default | false |
| Description | textareaの値です。 |
| Attribute | value |
| Type | null | string | undefined |
| Default | '' |
| Description | コントロールがテキストをどのように折り返すかを示します。 |
| Attribute | wrap |
| Type | "hard" | "off" | "soft" | undefined |
| Default | undefined |
| Name | Description | Bubbles |
|---|
ionBlur | Inputのフォーカスが外れたときに発行されます。 | true |
ionChange | onChange イベントは、ユーザが textarea の値を変更したときに発生する。ionInput イベントとは異なり、ionChangeイベントは値が変更された後に要素のフォーカスが外れたときに発生する。 このイベントは、プログラムでvalue` プロパティを設定した場合には発生しない。 | true |
ionFocus | Inputにフォーカスが当たったときに発行されます。 | true |
ionInput | ionInput イベントは、ユーザが textarea の値を変更するたびに発生する。ionChange イベントとは異なり、ionInput イベントは textarea の値が変更されるたびに発生する。これは通常、ユーザがキーを入力するたびに発生する。 clearOnEdit が有効な場合、ユーザが textarea をクリアするためにキーダウンを行うと、ionInput イベントが発生する。 | true |
| Description | 要素の内部で使用されるネイティブの <textarea> 要素を返します。 |
| Signature | getInputElement() => Promise<HTMLTextAreaElement> |
| Description | ion-textareaのネイティブ textarea にフォーカスを設定する。グローバルメソッド textarea.focus() の代わりにこのメソッドを使用する。 詳細は managing focus を参照してください。 |
| Signature | setFocus() => Promise<void> |
No CSS shadow parts available for this component.
| Name | Description |
|---|
--background | textareaの背景 |
--border-color | ヘルパーテキスト、エラーテキスト、カウンターを使用する場合のテキストエリア下のボーダーの色 |
--border-radius | テキストエリアの境界半径 |
--border-style | ヘルパーテキスト、エラーテキスト、カウンター使用時のテキストエリア下のボーダーのスタイル |
--border-width | ヘルパーテキスト、エラーテキスト、カウンターを使用する場合のテキストエリア下のボーダーの幅 |
--color | 本文の色 |
--highlight-color-focused | フォーカスされたときのテキストエリアのハイライトの色 |
--highlight-color-invalid | 無効時のテキストエリア上のハイライトの色 |
--highlight-color-valid | 有効時のテキストエリアのハイライトの色 |
--highlight-height | テキストエリアのハイライトの高さ。mdモードにのみ適用される。 |
--padding-bottom | テキストエリアのBottom Padding |
--padding-end | テキストエリアの方向が左から右の場合はRight Padding、右から左の場合はLeft Paddingを使用します。 |
--padding-start | textareaの方向が左から右の場合はLeft Padding、右から左の場合はRight Padding。 |
--padding-top | textareaのTop Padding |
--placeholder-color | Placeholderテキストの色 |
--placeholder-font-style | Placeholderテキストのスタイル |
--placeholder-font-weight | Placeholderテキストの重さ |
--placeholder-opacity | Placeholderテキストの不透明度 |
| Name | Description |
|---|
--background | textareaの背景 |
--border-color | ヘルパーテキスト、エラーテキスト、カウンターを使用する場合のテキストエリア下のボーダーの色 |
--border-radius | テキストエリアの境界半径 |
--border-style | ヘルパーテキスト、エラーテキスト、カウンター使用時のテキストエリア下のボーダーのスタイル |
--border-width | ヘルパーテキスト、エラーテキスト、カウンターを使用する場合のテキストエリア下のボーダーの幅 |
--color | 本文の色 |
--highlight-color-focused | フォーカスされたときのテキストエリアのハイライトの色 |
--highlight-color-invalid | 無効時のテキストエリア上のハイライトの色 |
--highlight-color-valid | 有効時のテキストエリアのハイライトの色 |
--highlight-height | テキストエリアのハイライトの高さ。mdモードにのみ適用される。 |
--padding-bottom | テキストエリアのBottom Padding |
--padding-end | テキストエリアの方向が左から右の場合はRight Padding、右から左の場合はLeft Paddingを使用します。 |
--padding-start | textareaの方向が左から右の場合はLeft Padding、右から左の場合はRight Padding。 |
--padding-top | textareaのTop Padding |
--placeholder-color | Placeholderテキストの色 |
--placeholder-font-style | Placeholderテキストのスタイル |
--placeholder-font-weight | Placeholderテキストの重さ |
--placeholder-opacity | Placeholderテキストの不透明度 |
| Name | Description |
|---|
end | textarea の末尾に表示する内容。(実験的) |
label | テキストエリアに関連付けるラベルテキスト。labelPlacement`プロパティを使用して、textareaに対するラベルの位置を制御する。ラベルをカスタム HTML でレンダリングする必要がある場合に使用します。(実験的) |
start | textarea の前端に表示する内容。(実験的) |