diff --git a/crates/oxc_linter/src/rules/jsx_a11y/alt_text.rs b/crates/oxc_linter/src/rules/jsx_a11y/alt_text.rs
index 627f0f37f..de1e88090 100644
--- a/crates/oxc_linter/src/rules/jsx_a11y/alt_text.rs
+++ b/crates/oxc_linter/src/rules/jsx_a11y/alt_text.rs
@@ -1,6 +1,6 @@
use oxc_ast::{
ast::{
- JSXAttributeItem, JSXAttributeValue, JSXChild, JSXElement, JSXElementName, JSXExpression,
+ JSXAttributeItem, JSXAttributeValue, JSXChild, JSXElement, JSXExpression,
JSXExpressionContainer, JSXOpeningElement,
},
AstKind,
@@ -12,7 +12,9 @@ use oxc_diagnostics::{
use oxc_macros::declare_oxc_lint;
use oxc_span::Span;
-use crate::utils::{get_prop_value, get_string_literal_prop_value, has_jsx_prop_lowercase};
+use crate::utils::{
+ get_element_type, get_prop_value, get_string_literal_prop_value, has_jsx_prop_lowercase,
+};
use crate::{context::LintContext, rule::Rule, AstNode};
#[derive(Debug, Error, Diagnostic)]
@@ -163,8 +165,7 @@ impl Rule for AltText {
fn run<'a>(&self, node: &AstNode<'a>, ctx: &LintContext<'a>) {
let AstKind::JSXOpeningElement(jsx_el) = node.kind() else { return };
- let JSXElementName::Identifier(iden) = &jsx_el.name else { return };
- let name = iden.name.as_str();
+ let Some(name) = &get_element_type(ctx, jsx_el) else { return };
//
if let Some(custom_tags) = &self.img {
@@ -356,7 +357,7 @@ fn input_type_image_rule<'a>(node: &'a JSXOpeningElement<'a>, ctx: &LintContext<
fn test() {
use crate::tester::Tester;
- fn array() -> serde_json::Value {
+ fn config() -> serde_json::Value {
serde_json::json!([{
"img": ["Thumbnail", "Image"],
"object": ["Object"],
@@ -366,177 +367,179 @@ fn test() {
}
let pass = vec![
- (r#"
;"#, None),
- (r#"
;"#, None),
- (r"
;", None),
- (r#"
;"#, None),
- (r"
;", None),
- (r#"
;"#, None),
- (r#"
;"#, None),
- (r#"
"#, None),
- (r"", None),
- (r"