2016-12-02 23 views
2

コンポーネントを広範囲に使用する角度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を使用してこれらのタグを無視する必要がありますか?誰もこの問題に遭遇しましたか?

+0

あなたはコントローラに$ elementを注入し、そこからangular.element APIを利用しようとしましたか? – jusopi

+0

私はそれを考えましたが、試してみませんでした。私にとってこれはブルートフォースの方法(私のコンポーネントをdivに変える)であり、これが角度の機能性を壊す可能性があるという懸念があります。私は角が提供するものを使用することを好むでしょう。 – Pardo

+0

私はEranの答えと一緒に行くつもりです。 HTML5以降ではカスタムタグを使用でき、ほとんどの場合、アクセシビリティは悲惨です。彼の答えがあなたのためにできることが分かりました。 – jusopi

答えて

0

エレメントのタグ は変更しないでください。可能であればアリアタグをネイティブに、または角度アリアで追加する必要があります。 Angular accessibility guideを読んでください。

関連する問題