Toon posts:

noscript en het W3C

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een website en wil deze graag zo toegankelijk mogelijk maken. Op een pagina heb ik een javascriptje dat een beschrijving laat zien als je met je muis over een afbeelding heengaat. Deze beschrijving staat standaar op "display:none;". Echter, browsers die geen javascript ondersteunen moeten deze beschrijving ook te zien kunnen krijgen dus heb ik de volgende html toegevoegd in mijn head-tag:

<noscript><link rel="stylesheet" href="css/noscript.css" media="screen" type="text/css" /></noscript>

In dit stylesheet zet ik de beschrijving op display:block.
Dit werkt zonder problemen, maar als ik nu mijn site door de validator haal krijg ik de melding dat ten eerste noscript niet in de head mag staan en het link element op zijn beurt weer niet in de noscript mag staan.

Is het hierom fout om een noscript in de head te zetten of moet ik gewoon de validator laten voor wat het is? Ik kan natuurlijk noscript.css als default stylesheet opgeven en met javascript de gewone stylesheet aan de dom toevoegen, maar dat lijkt me een nogal omslachtige oplossing.

Wat zijn jullie ideeën hierover? Of hebben jullie hier misschien een simpelere oplossing voor?

Ik hoor het graag.

[ Voor 4% gewijzigd door Verwijderd op 02-02-2007 12:44 ]


  • Mad Marty
  • Registratie: Juni 2003
  • Laatst online: 15:55

Mad Marty

Je bent slimmer als je denkt!

Verwijderd schreef op vrijdag 02 februari 2007 @ 12:42:
Op een pagina heb ik een javascriptje dat een beschrijving laat zien als je met je muis over een afbeelding heengaat.
Waarom gebruik je hier niet gewoon een ALT-tag voor? Dan zit je ook niet met het probleem dat sommige users geen JavaScript aan hebben staan.

[ Voor 13% gewijzigd door Mad Marty op 02-02-2007 12:45 ]

Rail Away!


Verwijderd

Topicstarter
Mad Marty schreef op vrijdag 02 februari 2007 @ 12:44:
[...]


Waarom gebruik je hier niet gewoon een ALT-tag voor?
Omdat het niet de beschrijving van het plaatje is, maar een beschrijving van een project waar dat plaatje bijhoort.

Edit: Sorry, had ik misschien even moeten vermelden in de TS

[ Voor 9% gewijzigd door Verwijderd op 02-02-2007 12:47 ]


  • Mad Marty
  • Registratie: Juni 2003
  • Laatst online: 15:55

Mad Marty

Je bent slimmer als je denkt!

Verwijderd schreef op vrijdag 02 februari 2007 @ 12:45:
[...]


Omdat het niet de beschrijving van het plaatje is, maar een beschrijving van een project waar dat plaatje bijhoort.
Dat maakt toch niet uit?
Of krijgt de bezoeker én een ALT te zien, én een geJavaScripte omschrijving?

Rail Away!


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Mad Marty schreef op vrijdag 02 februari 2007 @ 12:44:
[...]

Waarom gebruik je hier niet gewoon een ALT-tag voor? Dan zit je ook niet met het probleem dat sommige users geen JavaScript aan hebben staan.
Alt? Title bedoel je? :) Die alt is bedoeld om weer te geven wanneer de image niet kan laden, of voor screen readers, zodat blinde mensen ook je plaatje "zien". :)

Verder is een tooltip ook niet alles, die kun je niet stylen en je kan er bijvoorbeeld geen plaatjes in kwijt. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Mad Marty schreef op vrijdag 02 februari 2007 @ 12:47:
[...]


Dat maakt toch niet uit?
Of krijgt de bezoeker én een ALT te zien, én een geJavaScripte omschrijving?
Als de bezoeker geen afbeeldingen kan zien wel.

Edit: Oh, als tooltip bedoel je? Nee, de alt en title zet ik uit met javascript zodra mijn eigen beschrijving zichtbaar wordt.

[ Voor 18% gewijzigd door Verwijderd op 02-02-2007 12:55 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Je kunt de beschrijving ook onder het plaatje plaatsen met standaard display: block, met javascript maak je er dan display: none van. Zo krijgen javascriptlozen direct de tekst te zien en de javascriptrijken pas bij een mouseover.

Eventueel zou je de mouseover ook met een CSS :hover kunnen doen, scheelt weer wat script.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Waarom gebruik je dan niet de alt- en de title-tag? Als ik je goed begrijp hoef je geen afbeeldingen te hebben in die tooltip, dus waarom niet gewoon de features van de browser zelf gebruiken? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 28-11 20:43

chem

Reist de wereld rond

Voor je oorspronkelijke probleem: zet een class 'javascript-enabled' op de body dmv javascript en pas je css aan zodat bv. body.javascript-enabled ... { ... } bepaalde zaken weer 'terug' zet en/of aanpast.

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
André schreef op vrijdag 02 februari 2007 @ 12:55:
Je kunt de beschrijving ook onder het plaatje plaatsen met standaard display: block, met javascript maak je er dan display: none van. Zo krijgen javascriptlozen direct de tekst te zien en de javascriptrijken pas bij een mouseover.
Dit deed ik in eerste instantie, maar firefox gaat hier niet goed mee om. omdat de beschrijving breder is dan de afbeelding, wordt de afbeelding ernaast naar rechts verschoven. Firefox rendert eerst de beschrijving, zet hem dan op display:none dmv javascript, maar vergeet daarna de afbeeldingen weer terug te zetten. Je krijgt hierdoor als het ware het "visibility:hidden" effect in plaats van "display:none".
Eventueel zou je de mouseover ook met een CSS :hover kunnen doen, scheelt weer wat script.
Dit werkt in ieder geval in IE6 voor zover ik weet alleen op het element zelf, toch?
Waarom gebruik je dan niet de alt- en de title-tag? Als ik je goed begrijp hoef je geen afbeeldingen te hebben in die tooltip, dus waarom niet gewoon de features van de browser zelf gebruiken?
Omdat de beschrijving met mijn muis moet mee bewegen en wat mooier gestyled moet zijn :)
Voor je oorspronkelijke probleem: zet een class 'javascript-enabled' op de body dmv javascript en pas je css aan zodat bv. body.javascript-enabled ... { ... } bepaalde zaken weer 'terug' zet en/of aanpast.
Heb al iets dergelijks geprobeerd, heb dan in firefox het hierboven beschreven probleem

[ Voor 35% gewijzigd door Verwijderd op 02-02-2007 13:10 ]


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 28-11 20:43

chem

Reist de wereld rond

Reflow issues kun je, alhoewel kazig, verhelpen door je hele body ff te 'flickeren': display: none, en dan display: block.

Klaar voor een nieuwe uitdaging.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:35

crisp

Devver

Pixelated

Nog een alternatief:
JavaScript:
1
document.write('<link rel="stylesheet" type="text/css" href="javascript-styles.css">');

in je <head>-sectie ;)

[ Voor 6% gewijzigd door crisp op 02-02-2007 13:28 ]

Intentionally left blank


Verwijderd

Topicstarter
chem schreef op vrijdag 02 februari 2007 @ 13:18:
Reflow issues kun je, alhoewel kazig, verhelpen door je hele body ff te 'flickeren': display: none, en dan display: block.
Hier had ik nog niet aan gedacht en het werkt inderdaad :) Ik zal het bij deze oplossing houden. Bedankt allen!

Desalniettemin blijf ik het raar vinden dat het noscript element niet in de head mag voorkomen. Kent iemand hier de reden van?

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Verwijderd schreef op vrijdag 02 februari 2007 @ 13:34:
[...]

Desalniettemin blijf ik het raar vinden dat het noscript element niet in de head mag voorkomen. Kent iemand hier de reden van?
Waarschijnlijk omdat het element altijd output bevat en daarom niet in de <head> thuis hoort maar in de <body> ;)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:35

crisp

Devver

Pixelated

Verwijderd schreef op vrijdag 02 februari 2007 @ 13:34:
[...]
Desalniettemin blijf ik het raar vinden dat het noscript element niet in de head mag voorkomen. Kent iemand hier de reden van?
Omdat <noscript> bedoelt is voor alternatieve content. Een link naar een stylesheet is geen content ;)
In fact: je hele <head> sectie mag geen content bevatten (daarom is <meta /> en <link /> ook invalid in HTML)

[ Voor 13% gewijzigd door crisp op 02-02-2007 13:47 ]

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op vrijdag 02 februari 2007 @ 13:46:
[...]

Omdat <noscript> bedoelt is voor alternatieve content. Een link naar een stylesheet is geen content ;)
In fact: je hele <head> sectie mag geen content bevatten (daarom is <meta /> en <link /> ook invalid in HTML)
Duidelijk. Dan was het dus toch niet zo'n nette oplossing als dat ik dacht :)
crisp schreef op vrijdag 02 februari 2007 @ 13:28:
Nog een alternatief:
JavaScript:
1
document.write('<link rel="stylesheet" type="text/css" href="javascript-styles.css">');

in je <head>-sectie ;)
Heb nu deze oplossing gebruikt omdat het scherm dan niet meer "flickert". De validator vind echter dat "<link>" of "<style>" niet in document.write mag voorkomen.

heb het nu zo opgelost, voor de mensen die ooit eens tegen een soortgelijk probleem aanlopen:
JavaScript:
1
2
3
4
<script type="text/javascript">
    var lesserThan = String.fromCharCode(60);
    document.write(lesserThan+'style type="text/css">.project_description{display:none}'+lesserThan+'/style>');
</script>

[ Voor 48% gewijzigd door Verwijderd op 02-02-2007 14:51 ]


  • Pete
  • Registratie: November 2005
  • Laatst online: 31-10 12:38
crisp schreef op vrijdag 02 februari 2007 @ 13:46:
[...]

Omdat <noscript> bedoelt is voor alternatieve content. Een link naar een stylesheet is geen content ;)
In fact: je hele <head> sectie mag geen content bevatten (daarom is <meta /> en <link /> ook invalid in HTML)
En het <title> dan?

petersmit.eu


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:35

crisp

Devver

Pixelated

Verwijderd schreef op vrijdag 02 februari 2007 @ 14:08:
[...]


Heb nu deze oplossing gebruikt omdat het scherm dan niet meer "flickert". De validator vind echter dat "<link>" of "<style>" niet in document.write mag voorkomen.
Dat heeft meer te maken met het feit dat je (faux) XHTML gebruikt ipv normaal HTML ;)

Intentionally left blank


Verwijderd

De HEAD mag geen content van de body bevatten, maar wel content van andere browser-onderdelen, zoals de titelbalk.

Verwijderd

Topicstarter
crisp schreef op vrijdag 02 februari 2007 @ 18:10:
[...]
Dat heeft meer te maken met het feit dat je (faux) XHTML gebruikt ipv normaal HTML ;)
Bedoel je dat ie het niet leuk vindt omdat m'n doctype op xhtml staat, of omdat ik "/>" afsluit tags gebruik in de document.write?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:35

crisp

Devver

Pixelated

Verwijderd schreef op vrijdag 02 februari 2007 @ 19:21:
[...]


Bedoel je dat ie het niet leuk vindt omdat m'n doctype op xhtml staat, of omdat ik "/>" afsluit tags gebruik in de document.write?
In XHTML moet je speciale karakters in een script-element HTML-encoden of een CDATA sectie gebruiken. In het eerste geval zal je script iig niet meer werken zoals verwacht op het moment dat je je document toch als HTML verstuurd.
Mijn advies: gebruik gewoon HTML, XHTML is nergens voor nodig en hoogst waarschijnlijk verstuur je het toch als HTML.

Intentionally left blank

Pagina: 1