Accessibility: Variablen für Farben
Imiglykos
- css
Hallo,
ich habe ein komplettes CSS-Layout erstellt und dieses wird auf alle vorhandenen Seiten angewendet. Nun verwende ich alternative Stylesheets wie für eine angepasste Druckansicht und benutzerdefinierten Ansichten. Jetzt habe ich nur eine kleine Anregung für CSS, vielmehr für das W3C-Konsortium. Denn ich habe nichts gefunden, was mir meine Arbeit oder mein Problem erleichtern würde. Ich möchte nämlich lediglich ein alternatives Ansicht mit "alternate stylesheet" erstellen, die eine komplette Seite invertieren läßt. Nur geht das nicht ohne Variablen! In erster Linie funktioniert das schon, wenn man das CSS-Hauptlayout mit alternativen CSS-Angaben überschreibt. Allerdings gibt es genügend Seiten, die dann besondere CSS-Angaben hinzugefügt bekommen und dann läuft das alles nicht mehr so rund. Dann hat man z.B. einen schwarzen Hintergrund mit dunkler Schrift irgendwo, weil eine Farbe mit den alternativen CSS-Angaben nicht überschreibbar waren. Das würde leichter gehen, wenn man Konstante (überschreibbar ^^) erzeugen könnte, die ich für Farben erstellen könnte.
Denkbar wäre:
@const rot { content:"#FF0000" }
Anzuwenden später mit:
div fenster {
background-color:@rot;
}
Wenn jetzt die alternative Ansicht (invertiert) geschaltet wird, würde dann nur die Konstante überschrieben:
@const rot { content:"#00FF00" }
Jaja, ich weiß. Konstanten überschreibt man nicht.
Das wäre doch auf Bezug der Accessibility des WWWs eine sinnvolle und praktische Lösung, um anderen Besuchern die Seite ersichtlicher zu machen. Denn manche haben nun mal Probleme bei dunkler Schrift auf hellen Hintergrund und umgekehrt. Leider kann man dies ohne einer zentralen Definition von Farben nicht zuverlässig umsetzen.
Zu doof, oder sehe ich den Wald vor lauter Bäumen nicht und es gibt für sowas eine Lösung?
Freundliche Grüße
Imiglykos
Hi,
Nur geht das nicht ohne Variablen!
CSS ist keine Programmiersprache - daher gibt es auch keine Variablen.
Es steht Dir frei, sämtliche Werte statisch zu ändern oder eine Programmiersprache Deiner Wahl zum Erstellen des CSS zu verwenden, wo Du dann auch selbstdefinierte Variablen verwenden kannst.
Allerdings gibt es genügend Seiten, die dann besondere CSS-Angaben hinzugefügt bekommen und dann läuft das alles nicht mehr so rund. Dann hat man z.B. einen schwarzen Hintergrund mit dunkler Schrift irgendwo, weil eine Farbe mit den alternativen CSS-Angaben nicht überschreibbar waren.
Zeige mir ein Beispiel ohne Fehler im CSS.
Denn manche haben nun mal Probleme bei dunkler Schrift auf hellen Hintergrund und umgekehrt. Leider kann man dies ohne einer zentralen Definition von Farben nicht zuverlässig umsetzen.
Und wie kommst Du darauf, daß dies ohne Variablen nicht möglich sei?
freundliche Grüße
Ingo
Hallo,
ich habe ein komplettes CSS-Layout erstellt und dieses wird auf alle vorhandenen Seiten angewendet.
na hoffentlich wird da nicht auf vielen Seiten nicht benötigter Balast mitgeschleppt.
Nun verwende ich alternative Stylesheets wie für eine angepasste Druckansicht und benutzerdefinierten Ansichten.
Was verstehst du denn unter 'benutzerdefinierten Ansichten'?
Jetzt habe ich nur eine kleine Anregung für CSS, vielmehr für das W3C-Konsortium.
hier bitte: [mailto:bert@w3.org]
Denn ich habe nichts gefunden, was mir meine Arbeit oder mein Problem erleichtern würde. Ich möchte nämlich lediglich ein alternatives Ansicht mit "alternate stylesheet" erstellen, die eine komplette Seite invertieren läßt.
Nur geht das nicht ohne Variablen!
Warum? Angenommen die Seite hat schwarze Schrift (color) auf weißem Grund (background-color), dann brauchst du doch bloß weiße Schrift auf schwarzem Grund zu definieren, und die Seite ist 'invertiert'.
In erster Linie funktioniert das schon, wenn man das CSS-Hauptlayout mit alternativen CSS-Angaben überschreibt.
Wie der Name 'alternate' (abwechselnd, wechselseitig) schon sagt, wird ja entweder das eine oder das andere Stylesheet geladen. Natürlich bleiben vorher einmal definierte Eigenschaften erhalten, wenn sie durch den Stylesheetwechsel nicht neue Werte zugewiesen bekommen (einfachste Methode, dies zu vermeiden, wäre alle Angaben aus Stylesheet A auch in B zu haben, nur halt mit den geänderten Werten).
Allerdings gibt es genügend Seiten, die dann besondere CSS-Angaben hinzugefügt bekommen und dann läuft das alles nicht mehr so rund.
Hier verstehe ich nicht, was du meinst.
Dann hat man z.B. einen schwarzen Hintergrund mit dunkler Schrift irgendwo, weil eine Farbe mit den alternativen CSS-Angaben nicht überschreibbar waren. Das würde leichter gehen, wenn man Konstante (überschreibbar ^^) erzeugen könnte, die ich für Farben erstellen könnte.
Nicht wenn du das oben erwähnte berücksichtigst.
Denkbar wäre:
@const rot { content:"#FF0000" }Anzuwenden später mit:
div fenster {
background-color:@rot;
}Wenn jetzt die alternative Ansicht (invertiert) geschaltet wird, würde dann nur die Konstante überschrieben:
@const rot { content:"#00FF00" }
Ein gutes Beispiel dafür, wie man Dinge nicht benennen sollte, denn jetzt wäre es eine Konstante Grün!
Jaja, ich weiß. Konstanten überschreibt man nicht.
Das wäre doch auf Bezug der Accessibility des WWWs eine sinnvolle und praktische Lösung, um anderen Besuchern die Seite ersichtlicher zu machen.
wohl mehr der Usability...
Denn manche haben nun mal Probleme bei dunkler Schrift auf hellen Hintergrund und umgekehrt.
Also wenn schon jemand Probleme mit schwarzer Schrift auf weißem Hintergrund hat, dann befürchte ich, dass es um seine Sehkraft nicht zum Besten bestellt ist.
Leider kann man dies ohne einer zentralen Definition von Farben nicht zuverlässig umsetzen.
<color> Applies to: all elements
<background-color> Applies to: all elements
Zu doof, oder sehe ich den Wald vor lauter Bäumen nicht und es gibt für sowas eine Lösung?
ja - s.o.
Freundliche Grüße
Imiglykos
Gruß Gunther
PS: Und zum Glück gibt es ja auch noch CSS 2 und !important ...
Tag,
ich habe ein komplettes CSS-Layout erstellt und dieses wird auf alle vorhandenen Seiten angewendet.
na hoffentlich wird da nicht auf vielen Seiten nicht benötigter Balast mitgeschleppt.
óO
ähm, definitiv nein...aber darum geht es mir ja auch: Den nicht benötigten Balast minimieren.
Nun verwende ich alternative Stylesheets wie für eine angepasste Druckansicht und benutzerdefinierten Ansichten.
Was verstehst du denn unter 'benutzerdefinierten Ansichten'?
"Benutzerdefiniert" auf Seiten des Programmierers/Gestalters.
Kurz HTML: <link rel="alternate stylesheet" href="/css/invertiert.css" type="text/css" media="screen" title="invertierte Ansicht" />
Und auf Seiten des Anwenders:
Kurz Firefox: Ansicht > Webseiten-Stil
Jetzt habe ich nur eine kleine Anregung für CSS, vielmehr für das W3C-Konsortium.
hier bitte: [mailto:bert@w3.org]
diskrisembö...
Wenn jetzt die alternative Ansicht (invertiert) geschaltet wird, würde dann nur die Konstante überschrieben:
@const rot { content:"#00FF00" }Ein gutes Beispiel dafür, wie man Dinge nicht benennen sollte, denn jetzt wäre es eine Konstante Grün!
Erstens ist es ein Beispiel und zweitens kann man die "Konstante" dann von mir aus auch gerne "window-hotline" nennen...
Das wäre doch auf Bezug der Accessibility des WWWs eine sinnvolle und praktische Lösung, um anderen Besuchern die Seite ersichtlicher zu machen.
wohl mehr der Usability...
yeah.
Kurz: eine Umsetzung (Usability) für die Accessibility (für Sehbehinderte).
Denn manche haben nun mal Probleme bei dunkler Schrift auf hellen Hintergrund und umgekehrt.
Also wenn schon jemand Probleme mit schwarzer Schrift auf weißem Hintergrund hat, dann befürchte ich, dass es um seine Sehkraft nicht zum Besten bestellt ist.
òÓ
Schon mal was von Senioren gehört?! Oder Menschen die farbenblind sind?! Es geht hier aber nicht allgemein um eine Umsetzung einer Invertierung, sondern die Umsetzung von mehreren Farbdefinitionsgruppen (weitergedacht).
Leider kann man dies ohne einer zentralen Definition von Farben nicht zuverlässig umsetzen.
<color> Applies to: all elements
<background-color> Applies to: all elements
es geht hier nicht nur um eine Vorder- und Hintergrundfarbe eines Elemets, welches lediglich überschrieben werden soll, sondern um eine Ansammlung von Farbdefinitionen.
Wir hätten dann eine Farbe für "Überschrift 1", "Überschrift 2", "Untertitel", "Text", "Menüfarbe", "Menüfarbe (Hover)", "Hintergrund", "Hintergrund Tabellen", "Hintergrund Bereich 1" etc.pp.
Damit man das alles nicht in alternativen Stylesheets packen muß, um diese überschreiben zu können und diese für jede Seite mitschleppen zu müssen (Stichwort: nicht benötigter Balast), wäre die zentrale Definition von Farben einfach sinnvoller und nimmt dann eben weniger Balast mit. Sonst müsste ich jeden einzelnen Klassen-Bereich oder ID-Bereich mit neuen Farben überschreiben.
Zu doof, oder sehe ich den Wald vor lauter Bäumen nicht und es gibt für sowas eine Lösung?
ja - s.o.
Definitiv nope.
PS: Und zum Glück gibt es ja auch noch CSS 2 und !important ...
fain. ^,°
Gruß
Imiglykos
Hallo Imiglykos.
Ich frage mich, warum du die ganze Zeit von "überschreiben" redest, wo du doch mittels alternative stylesheets die Möglichkeit hast, alles _grundlegend_ anders zu formatieren.
Dazu musst du dem Standardstylesheet lediglich ein title-Attribut verpassen, womit es komplett ersetzt werden kann. (Wie du schon sagtest über Ansicht > Webseitenstil im FF.)
Gruß, Ashura
Tag Imiglykos,
also irgendwie verstehe ich dein Problem mit den 'Alternativen Stylesheets' nicht so ganz, aber vielleicht helfen dir ja die 2 Links dabei weiter, da du ja gerne Konstanten verwenden möchtest.
Dynamic CSS with PHP
CSS Constants
Das Thema wurde auch gerade auf der css-discuss Mailingliste erörtert.
Gruß
Imiglykos
Gruß Gunther