[Network Requests Table] Accessibility improvements for initiatior links
- The initiator link on a selected row can be accessed by pressing the
right arrow key
- When a preflight initiator link is in focus, the screen reader will
read the help text associated with it
Bug: 1212144
Change-Id: I8599267c9f74a8ae99f0ce3e1657a51229d5beef
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2913102
Reviewed-by: Mathias Bynens <[email protected]>
Commit-Queue: Olivia Flynn <[email protected]>
diff --git a/front_end/panels/network/NetworkDataGridNode.ts b/front_end/panels/network/NetworkDataGridNode.ts
index 67189f3..039dfc7 100644
--- a/front_end/panels/network/NetworkDataGridNode.ts
+++ b/front_end/panels/network/NetworkDataGridNode.ts
@@ -1231,9 +1231,11 @@
cell.appendChild(document.createTextNode(i18nString(UIStrings.preflight)));
if (initiator.initiatorRequest) {
const icon = UI.Icon.Icon.create('mediumicon-network-panel');
- cell.appendChild(Components.Linkifier.Linkifier.linkifyRevealable(
+ const link = Components.Linkifier.Linkifier.linkifyRevealable(
initiator.initiatorRequest, icon, undefined, i18nString(UIStrings.selectTheRequestThatTriggered),
- 'trailing-link-icon'));
+ 'trailing-link-icon');
+ UI.ARIAUtils.setAccessibleName(link, i18nString(UIStrings.selectTheRequestThatTriggered));
+ cell.appendChild(link);
}
break;
}
diff --git a/front_end/panels/network/NetworkLogView.ts b/front_end/panels/network/NetworkLogView.ts
index 7a24e85..a612e16 100644
--- a/front_end/panels/network/NetworkLogView.ts
+++ b/front_end/panels/network/NetworkLogView.ts
@@ -915,6 +915,12 @@
this._dataGrid.element.addEventListener('mousemove', this._dataGridMouseMove.bind(this), true);
this._dataGrid.element.addEventListener('mouseleave', () => this._setHoveredNode(null), true);
this._dataGrid.element.addEventListener('keydown', event => {
+ if (event.key === 'ArrowRight' && this._dataGrid.selectedNode) {
+ const initiatorLink = this._dataGrid.selectedNode.element().querySelector('span.devtools-link');
+ if (initiatorLink) {
+ (initiatorLink as HTMLElement).focus();
+ }
+ }
if (isEnterOrSpaceKey(event)) {
this.dispatchEventToListeners(Events.RequestActivated, {showPanel: true, takeFocus: true});
event.consume(true);