В веб-разработке доступность и семантика контента играют ключевую
роль. Фреймворк Fresh, ориентированный на рендеринг на стороне сервера с
поддержкой Deno, обеспечивает простые и мощные инструменты для работы с
изображениями и мультимедийным контентом. Альтернативные тексты
(alt) для изображений являются неотъемлемой частью
правильной разметки, обеспечивая доступ к информации для пользователей с
ограничениями по зрению и поддерживая SEO.
alt в
компонентах FreshВ Fresh используются JSX-подобные компоненты, что
делает работу с атрибутами интуитивной. Атрибут alt
является обязательным для всех <img> элементов:
<img src="/images/logo.png" alt="Логотип компании" width={120} height={40} />
Ключевые моменты:
alt должен кратко и точно описывать содержимое
изображения.alt="",
что предотвращает лишнее чтение экранными читалками.title не заменяет alt. Он служит
только для отображения всплывающей подсказки и не повышает
доступность.В Fresh часто используются динамические данные,
подставляемые в компоненты. Атрибут alt можно связывать с
пропсами или результатами функций:
interface PhotoProps {
url: string;
description: string;
}
export default function Photo({ url, description }: PhotoProps) {
return <img src={url} alt={description} />;
}
Такой подход позволяет:
alt в Picture и адаптивных изображенияхДля адаптивных изображений <picture> в Fresh тоже
важно правильно использовать альтернативные тексты. Атрибут
alt указывается только на основном
<img> внутри
<picture>:
<picture>
<source srcSet="/images/photo.webp" type="image/webp" />
<source srcSet="/images/photo.jpg" type="image/jpeg" />
<img src="/images/photo.jpg" alt="Городской пейзаж с закатом" />
</picture>
<source> служат для выбора формата и
разрешения, не несут текстовую информацию.alt у
<img>.Fresh выполняет серверный рендеринг (SSR), что позволяет:
alt быть сразу включённым в HTML.alt.Пример проверки типов:
interface HeroImageProps {
src: string;
alt: string; // обязательный параметр
}
export default function HeroImage({ src, alt }: HeroImageProps) {
return <img src={src} alt={alt} class="hero-image" />;
}
Попытка передать пустое или неопределённое значение TypeScript сразу выявит ошибку на этапе компиляции.
Поисковые системы учитывают alt при ранжировании
страниц. В Fresh это особенно важно, так как SSR позволяет
роботам индексировать полностью готовый HTML с
правильными атрибутами:
altalt="" и role="presentation".Пример с декоративным элементом:
<img src="/images/decorative-line.png" alt="" role="presentation" />
Это полностью исключает изображение из озвучивания экранными читалками.
При создании компонентов интерфейса, таких как кнопки с иконками или
карточки товаров, alt играет критическую роль. Примеры:
export default function IconButton({ iconUrl, label }: { iconUrl: string; label: string }) {
return (
<button>
<img src={iconUrl} alt={label} />
</button>
);
}
alt дублирует смысл кнопки, улучшая
доступность.aria-label, если требуется
дополнительное описание для сложных интерфейсов.alt.alt на этапе компиляции.alt и семантические роли.Эти подходы формируют чистую, доступную и SEO-оптимизированную структуру изображений в проектах на Fresh.