Fix inaccessible link by keyboard nav in info bubble (#216)
* Fix inaccessible link by keyboard nav in info bubble * Fix shift-tab on link to focus previous element
This commit is contained in:
parent
26c832437b
commit
e62184a1f2
|
@ -517,13 +517,13 @@
|
|||
<div>
|
||||
<span class="mandatoryStar">*</span>
|
||||
<span class="addCollectionLabel">Analytical store</span>
|
||||
<span class="infoTooltip" role="tooltip" tabindex="0">
|
||||
<span class="infoTooltip" role="tooltip" tabindex="0" data-bind="event: { focus: function(data, event) { transferFocus('tooltip1', 'link1') } }">
|
||||
<img class="infoImg" src="/info-bubble.svg" alt="More information">
|
||||
<span class="tooltiptext infoTooltipWidth">
|
||||
<span id="tooltip1" class="tooltiptext infoTooltipWidth" data-bind="event: { mouseout: onMouseOut }">
|
||||
Enable analytical store capability to perform near real-time analytics on your operational
|
||||
data, without impacting the performance of transactional workloads.
|
||||
Learn more <a class="errorLink" href="https://aka.ms/analytical-store-overview"
|
||||
target="_blank">here</a>
|
||||
Learn more <a id="link1" class="errorLink" href="https://aka.ms/analytical-store-overview"
|
||||
target="_blank" data-bind="event: { focusout: onFocusOut, keydown: onKeyDown.bind($data, 'largePartitionKey') }">here</a>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
@ -721,6 +721,29 @@ export default class AddCollectionPane extends ContextualPaneBase {
|
|||
TelemetryProcessor.trace(Action.CreateCollection, ActionModifiers.Open, addCollectionPaneOpenMessage);
|
||||
}
|
||||
|
||||
private transferFocus(elementIdToKeepVisible: string, elementIdToFocus: string): void {
|
||||
document.getElementById(elementIdToKeepVisible).style.visibility = "visible";
|
||||
document.getElementById(elementIdToFocus).focus();
|
||||
}
|
||||
|
||||
private onFocusOut(_: any, event: any): void {
|
||||
event.target.parentElement.style.visibility = "";
|
||||
}
|
||||
|
||||
private onMouseOut(_: any, event: any): void {
|
||||
event.target.style.visibility = "";
|
||||
}
|
||||
|
||||
private onKeyDown(previousActiveElementId: string, _: any, event: KeyboardEvent): boolean {
|
||||
if (event.shiftKey && event.keyCode == Constants.KeyCodes.Tab) {
|
||||
document.getElementById(previousActiveElementId).focus();
|
||||
return false;
|
||||
} else {
|
||||
// Execute default action
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private _onDatabasesChange(newDatabaseIds: ViewModels.Database[]) {
|
||||
const cachedDatabaseIdsList = _.map(newDatabaseIds, (database: ViewModels.Database) => {
|
||||
if (database && database.offer && database.offer()) {
|
||||
|
|
Loading…
Reference in New Issue