Skip to content

Commit 03ff04b

Browse files
committed
Fixed content tabs stealing keyboard access to search
1 parent 77c62c9 commit 03ff04b

File tree

10 files changed

+32
-22
lines changed

10 files changed

+32
-22
lines changed

material/assets/javascripts/bundle.bc35569b.min.js renamed to material/assets/javascripts/bundle.801e7afd.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

material/assets/javascripts/bundle.bc35569b.min.js.map renamed to material/assets/javascripts/bundle.801e7afd.min.js.map

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

material/assets/javascripts/workers/search.e99e714c.min.js renamed to material/assets/javascripts/workers/search.8397ff9e.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

material/assets/javascripts/workers/search.e99e714c.min.js.map renamed to material/assets/javascripts/workers/search.8397ff9e.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

material/base.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ <h1>{{ page.title | d(config.site_name, true)}}</h1>
198198
"base": base_url,
199199
"features": features,
200200
"translations": {},
201-
"search": "assets/javascripts/workers/search.e99e714c.min.js" | url,
201+
"search": "assets/javascripts/workers/search.8397ff9e.min.js" | url,
202202
"version": config.extra.version or None
203203
} -%}
204204
{%- set translations = app.translations -%}
@@ -225,7 +225,7 @@ <h1>{{ page.title | d(config.site_name, true)}}</h1>
225225
</script>
226226
{% endblock %}
227227
{% block scripts %}
228-
<script src="{{ 'assets/javascripts/bundle.bc35569b.min.js' | url }}"></script>
228+
<script src="{{ 'assets/javascripts/bundle.801e7afd.min.js' | url }}"></script>
229229
{% for path in config["extra_javascript"] %}
230230
<script src="{{ path | url }}"></script>
231231
{% endfor %}

material/overrides/assets/javascripts/bundle.bb368c8a.min.js renamed to material/overrides/assets/javascripts/bundle.f2c7354c.min.js

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

material/overrides/main.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
{% endblock %}
1717
{% block scripts %}
1818
{{ super() }}
19-
<script src="{{ 'overrides/assets/javascripts/bundle.bb368c8a.min.js' | url }}"></script>
19+
<script src="{{ 'overrides/assets/javascripts/bundle.f2c7354c.min.js' | url }}"></script>
2020
{% endblock %}

src/assets/javascripts/browser/keyboard/index.ts

+18-8
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,26 @@ export interface Keyboard {
5656
* Check whether an element may receive keyboard input
5757
*
5858
* @param el - Element
59+
* @param type - Key type
5960
*
6061
* @returns Test result
6162
*/
62-
function isSusceptibleToKeyboard(el: HTMLElement): boolean {
63-
switch (el.tagName) {
63+
function isSusceptibleToKeyboard(
64+
el: HTMLElement, type: string
65+
): boolean {
66+
switch (el.constructor) {
6467

65-
/* Form elements */
66-
case "INPUT":
67-
case "SELECT":
68-
case "TEXTAREA":
68+
/* Input elements */
69+
case HTMLInputElement:
70+
/* @ts-expect-error - omit unnecessary type cast */
71+
if (el.type === "radio")
72+
return /^Arrow/.test(type)
73+
else
74+
return true
75+
76+
/* Select element and textarea */
77+
case HTMLSelectElement:
78+
case HTMLTextAreaElement:
6979
return true
7080

7181
/* Everything else */
@@ -95,11 +105,11 @@ export function watchKeyboard(): Observable<Keyboard> {
95105
ev.stopPropagation()
96106
}
97107
} as Keyboard)),
98-
filter(({ mode }) => {
108+
filter(({ mode, type }) => {
99109
if (mode === "global") {
100110
const active = getActiveElement()
101111
if (typeof active !== "undefined")
102-
return !isSusceptibleToKeyboard(active)
112+
return !isSusceptibleToKeyboard(active, type)
103113
}
104114
return true
105115
}),

src/assets/javascripts/integrations/search/worker/main/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export async function handler(
163163
* Worker
164164
* ------------------------------------------------------------------------- */
165165

166-
/* @ts-ignore - expose Lunr.js in global scope, or stemmers will not work */
166+
/* @ts-expect-error - expose Lunr.js in global scope, or stemmers won't work */
167167
self.lunr = lunr
168168

169169
/* Handle messages */

0 commit comments

Comments
 (0)