Heim >Web-Frontend >CSS-Tutorial >Ein funktionierender SVG -Workflow für zugängliche Symbole
Die Verwendung von Icon -Schriftarten wird im Allgemeinen aufgrund von Inkonsistenzen, Zugänglichkeitsproblemen und semantischen Einschränkungen entmutigt. Dieser Artikel beschreibt einen optimierten Workflow zum Erstellen und Implementieren von SVG -Symbolen, die die Leistung von SVG -Sprites nutzen.
Während SVGs komplex erscheinen mögen, vereinfacht dieser Ansatz den Prozess. Wir werden leicht verfügbare Symbole verwenden und die Sprite -Generation für ein effizientes Management automatisieren.
Schlüsselvorteile:
<title></title>
und <desc></desc>
-Tags. Workflow -Übersicht:
spritesh
(installierbar über NPM: npm install spritesh -g
), um ein SVG -Sprite aus Ihren individuellen Symboldateien zu generieren. Dadurch werden alle Symbole in eine einzelne Datei zum effizienten Laden zusammengefasst. Ein Beispielbefehl: spritesh --input assets/images/icons --output _includes/sprite.svg --viewbox "0 0 16 16" --prefix icon-
{% include sprite.svg %}
in Jekyll). <use></use>
-Tag zu Referenz -Symbole aus dem Sprite. Diese Komponente sollte eine einfache Anpassung von Klassen, viewBox
und Barrierefreiheitattributen ermöglichen. <title></title>
und <desc></desc>
Tags enthalten, um einen Kontext für Bildschirmleser bereitzustellen und die Zugänglichkeit zu verbessern. Diese Beschreibungen sollten kontextspezifisch sein, dynamisch auf der Verwendung des Symbols hinzugefügt.
Beispielsymbolkomponente (Jekyll):
<code class="language-html">{% capture id %}{% increment uniqueid %}{% endcapture %} <svg viewbox="0 0 16 16" role="img" class="icon icon-{{ include.icon }}" aria-labelledby="{% if include.title %}title-{{ id }}{% endif %}{% if include.desc %} desc-{{ id }}{% endif %}"> {% if include.title %} <title id="title-{{ id }}">{{ include.title }}</title> {% endif %} {% if include.desc %} <desc id="desc-{{ id }}">{{ include.desc }}</desc> {% endif %} <use xlink:href="#icon-{{ include.icon }}"></use> </svg></code>
Beispielsymbolkomponente (React):
<code class="language-javascript">import { uniqueId } from 'lodash'; const Icon = (props) => { const id = uniqueId(); return ( <svg role="img" viewbox="0 0 16 16" classname="{`icon" icon- aria-labelledby="{" : desc-> {props.title && <title id="{`title-${id}`}">{props.title}</title>} {props.desc && <desc id="{`desc-${id}`}">{props.desc}</desc>} <use xlinkhref="{`#icon-${props.icon}`}"></use> </svg> ); }; export default Icon;</code>
Optimierung: Integrieren Sie Tools wie SVGO (npm install svgo
), um SVG -Dateien vor der Sprite -Generierung für eine verbesserte Leistung zu optimieren. Verwenden Sie NPM -Skripte, um diesen Vorgang zu automatisieren.
Dieser Workflow bietet eine robuste, wartbare und zugängliche Lösung für die Verwaltung von SVG -Symbolen in Ihren Projekten. Denken Sie daran, Ihre Symbole immer über verschiedene Browser und Bildschirmleser zu testen, um eine optimale Zugänglichkeit zu gewährleisten.
Das obige ist der detaillierte Inhalt vonEin funktionierender SVG -Workflow für zugängliche Symbole. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!