アクセシビリティのために、私はモーダル内でタブ順序をキャプチャするためにタブ付きfocus
とblur
イベントをキャプチャしようとしています。タブ付きフォーカスのキャプチャ/適切なぼかし
何らかの理由で私は奇妙なブラウザの動作に慣れています。私のコンポーネントの内部
私は、次のコードを持っている:
// On Init
ngOnInit(){
// Get all of the buttons and anchors in the modal
var buttons = this.modal.nativeElement.querySelectorAll("button, a");
// Get the number of buttons
var numButtons = buttons.length;
// Get the last button
var lastButton = buttons[numButtons - 1];
// When the last button loses focus
lastButton.addEventListener("blur", (e: any) => {
// Prevent Default
e.preventDefault();
// Focus on the modals close button
this.focusCloseButton();
})
}
を技術的に、これは完璧に動作します。 this.focusCloseButton
への呼び出しの後にアクティブな要素をログアウトすると、実際に閉じるボタンへの参照が得られます。
ただし、タブは実際に最初の要素が何であれブラウザ自体に移動します。 Chromeの場合、これはURLバーの左側にある[サイト情報の表示]ボタンです。 Firefoxでは、これはタブのリストの最初のタブです。
ブラウザがタブプレスをハイジャックしないように、これを正しくキャプチャするにはどうすればよいですか?
w最後のボタンは何ですか?その場合は、テンプレート内の '(blur)=" focusCloseButton() "'をテンプレートに適用して問題を解決しますか? 私はあなたが持っている問題を複製するPlunkerに興味があります。 focusCloseButtonの実装も確認できますか? – silentsod
plunkを追加して機能を表示し、コードを公開しました。 – StephenRios