/** * Copyright (c) 2025 Ofri Peretz * Licensed under the MIT License. Use of this source code is governed by the * MIT license that can be found in the LICENSE file. */ /** * ESLint Rule: alt-text * Enforce alt text on images with user impact context * Matches jsx-a11y naming convention */ import type { TSESLint } from '@interlace/eslint-devkit'; type MessageIds = 'missingAlt' | 'emptyAlt' | 'addDescriptiveAlt' | 'useEmptyAlt' | 'preferEmptyAltOverPresentation' | 'objectMissingAlternative' | 'areaMissingAlternative' | 'inputImageMissingAlternative'; export interface Options { /** Allow aria-label as alternative to alt text. Default: false */ allowAriaLabel?: boolean; /** Allow aria-labelledby as alternative to alt text. Default: false */ allowAriaLabelledby?: boolean; /** * Custom component names that should be checked as `` (next/image, * Chakra Image, MUI Avatar, framework-specific components). Without this * the rule misses every React project that wraps native img — which is * most of them. Mirrors the `img: [...]` option in eslint-plugin-jsx-a11y. */ img?: string[]; /** Custom components checked as ``. */ object?: string[]; /** Custom components checked as ``. */ area?: string[]; /** Custom components checked as ``. */ inputImage?: string[]; } type RuleOptions = [Options?]; export declare const altText: TSESLint.RuleModule & { name: string; }; export {};