mirror of
https://github.com/sveltejs/svelte.git
synced 2024-12-01 17:30:59 +01:00
fix: silence no content a11y warning if the tag has an aria-label (#8299)
fixes #8296 --------- Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
This commit is contained in:
parent
3559997223
commit
c9a269c149
@ -225,6 +225,7 @@ export default class Element extends Node {
|
||||
namespace: string;
|
||||
needs_manual_style_scoping: boolean;
|
||||
tag_expr: Expression;
|
||||
contains_a11y_label: boolean;
|
||||
|
||||
get is_dynamic_element() {
|
||||
return this.name === 'svelte:element';
|
||||
@ -625,6 +626,7 @@ export default class Element extends Node {
|
||||
const id_attribute = attribute_map.get('id');
|
||||
const name_attribute = attribute_map.get('name');
|
||||
const target_attribute = attribute_map.get('target');
|
||||
const aria_label_attribute = attribute_map.get('aria-label');
|
||||
|
||||
// links with target="_blank" should have noopener or noreferrer: https://developer.chrome.com/docs/lighthouse/best-practices/external-anchors-use-rel-noopener/
|
||||
// modern browsers add noopener by default, so we only need to check legacy browsers
|
||||
@ -647,6 +649,13 @@ export default class Element extends Node {
|
||||
}
|
||||
}
|
||||
|
||||
if (aria_label_attribute) {
|
||||
const aria_value = aria_label_attribute.get_static_value();
|
||||
if (aria_value != '') {
|
||||
this.contains_a11y_label = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (href_attribute) {
|
||||
const href_value = href_attribute.get_static_value();
|
||||
|
||||
@ -930,6 +939,7 @@ export default class Element extends Node {
|
||||
|
||||
validate_content() {
|
||||
if (!a11y_required_content.has(this.name)) return;
|
||||
if (this.contains_a11y_label) return;
|
||||
if (
|
||||
this.bindings
|
||||
.some((binding) => ['textContent', 'innerHTML'].includes(binding.name))
|
||||
|
@ -0,0 +1 @@
|
||||
<a href="/foo" aria-label="baz"></a>
|
@ -0,0 +1 @@
|
||||
[]
|
Loading…
Reference in New Issue
Block a user