コンポーネントを広範囲に使用する角度1.5のアプリがあります。私の問題は、カスタムコンポーネントタグがアクセシビリティテストに失敗していることです。私の見解モデルテンプレートは、次のようになります。Angularjs 1.5:コンポーネントタグをhtmlタグに置き換えます
<my-component data='myModel'></my-component>
<script type="text/ng-template" id=myComponent.html">
<pre> {{ data | json }} </pre>
</script>
これはライブDOMにレンダリングされ、この中になります:私たちのテストツールによって
<my-component data='myModel'>
<pre>
...
</pre>
</my-component>
私-componentタグを認識していないとアクセシビリティを失敗します。
my-componentタグをdivに変換してみましたが、どのようにdivを生成するのか分かりません。 1.5のディレクティブにはreplace関数があります。 2.0のコンポーネントにはselectorプロパティがあります。私はtransclusionを使ってこれを達成できるとは信じていません。なぜなら、私のコンポーネントのコントローラーは親タグを参照する必要があるからです。
私はこれについて正しく考えていますか?おそらく、スクリーンリーダーがng-Ariaを使用してこれらのタグを無視する必要がありますか?誰もこの問題に遭遇しましたか?
あなたはコントローラに$ elementを注入し、そこからangular.element APIを利用しようとしましたか? – jusopi
私はそれを考えましたが、試してみませんでした。私にとってこれはブルートフォースの方法(私のコンポーネントをdivに変える)であり、これが角度の機能性を壊す可能性があるという懸念があります。私は角が提供するものを使用することを好むでしょう。 – Pardo
私はEranの答えと一緒に行くつもりです。 HTML5以降ではカスタムタグを使用でき、ほとんどの場合、アクセシビリティは悲惨です。彼の答えがあなたのためにできることが分かりました。 – jusopi