コンテキストは、異なる機能のためにアプリケーションのユーザー動作をトラッキングすることです。HTMLの見出しはNVDAによってクリック可能と見なされます
我々は myFunctionalityを言う カスタム角度ディレクティブを作成し、今は この内のすべてのクリックイベントを追跡し、 functionality-によってそれらを分類することができるよう、次のようにこのディレクティブにHTMLの部分をラップしている。このため特定の機能の使用状況を追跡するに名前を付ける - このディレクティブ内
<myFunctionality functionality-name="Login">
<!--HTML of this functionality-->
</myFunctionality>
<myFunctionality functionality-name="RegisterUser">
<!--HTML of this functionality-->
</myFunctionality>
、我々はclick
イベントをキャプチャし、それに応じてログに記録するイベントハンドラを添付しています。
.directive('myFeature', [function() {
return {
restrict: 'E',
link: function(scope, element, attrs) {
//more code
element.on('click.myFeature', '*:not(select, :radio, :checkbox)', function(event) {
logEventDetails(event);
});
//more code
}])
これは私がNVDA
スクリーンリーダーを使って自分のページを読んだときことを除いて、美しく、作業しています。 NVDAは、heading
要素をクリック可能として読み取ります。この見出しについては、例えば -
<h1> Test Heading </h1>
NVDA読み取り:
テスト1
Iはまた、このような何か、を使用しようとしている(バージョンのさまざまなクリック可能なレベルを見出し見出し)しかしそれは働かなかった -
$(':header').off('click.myFeature');
TL; DR
次のサンプルHTMLを検討してください。ここでclick
はdiv
に関連付けられ、h1
には関連付けられません。しかし、スクリーンリーダーは、見出し要素をクリック可能な形で読み取るように機能します。
<html>
<body>
<div onclick="alert('Hello from Div!')">
<h1>Test Heading</h1>
</div>
</body>
</html>
NVDAがクリックできないイベントをクリック可能な状態で読み取るのを防ぐ方法を教えてください。
お返事ありがとうございます、ええ、私はこれが動作する方法だと思います。親要素でクリックがクリックされたときにクリックできないことが予想されていました:(アプリケーション設計では、コントロールの位置を変更できません。 – Yogi
私は同じ問題が発生しましたタグ付けされたタグに 'tabindex =" - 1 "'を置くと、NVDAが "clickable"というアナウンスを聞くことになるということを、Adobe Dynamic Tag Management(DTM)あなたは主な開発者の1人がその動作を説明する[NVDAの問題についてのディスカッション](https://github.com/nvaccess/nvda/issues/5481#issuecomment-241574110)を読むことができます。私はまた、https://github.com/nvaccess/nvda/issues/6639でNVDAのオープンな問題を抱えています –