EDV-Beratung K. H. Meyer

Probleme mit XML-Deklaration im Doctype

 

<?xml version="1.0" encoding="ISO-8859-1"?> als erste Zeile soll den Browser auf den verwandten Zeichensatz und XML hinweisen. Wird diese Angabe beim Intenet Explorer 6 gemacht, wird die Seite nicht mehr wie gewünscht dargestellt, sondern breiter mit horizontalem Scrollbalken. Das ist ein Fehler des IE6. Netscape 6.0 und Firefox 1.5 machen hier keine Anstalten. Der IE6 wird durch diese Angabe in den Quirks-Mode geschalten und bekommt dadurch Probleme mit XHTML.

Die XML-Angabe macht nur Sinn, wenn die Seite als application/xml vorgesehen ist. Da der IE 6 dies nicht darstellen kann, empfiehlt es sich, die Angabe einfach weg zu lassen. Experimente mit Browserweichen sind auch nicht unbedingt sinnvoll.

 

Anker mit name="" und id=""

 

Bei XHTML 1.1 und 1.0 Strict führt das Attribut name="" bei der Validierung zu Fehlern. Richtig ist, dass "name" laut diesen XHTML-Definitionen nicht mehr gibt. Schade ist nur, dass Anker der Form
<a id="sprungziel"></a>
nicht von allen Browsern erkannt werden. Bei normalen Hyperlinks der og. Form funktionieren Netscape 6, Internet Explorer 6 und Firefox 1.5. Andere habe ich nicht getestet.
Bei Maps macht die alleinige ID-Angabe (<map id="Map0">) ebenfalls keine Probleme, jedoch die usemap-Angabe beim img-Tag.

<img src="pics/referenzen.jpg" alt="" width="577" height="617" usemap="#Map0"

Wird kein "#" vor "Map0" angebeben, wird kein Hyperlink geöffnet, dafür mault der Validator auf der anderen Seite, dass "#" ein unerlaubtes Zeichen ist.

Eine einfache Lösung ist es, auf XHTML 1.1 auf XHTML 1.0 Transitional zurückzuschalten, dann spielt das "#" zu keiner Fehlermeldung und ebenso das name-Attribut.

 

target=_blank führt zu Fehlern

 

Bei Validieren von XHTML 1.1 und 1.0 Strict-Seiten liefert die target-Angabe in Hyperlinks Fehler. Richtig ist, dass die Ziel-Angabe

<a href="http.//www.sonstwas.xx" target="_bank">Sonstwas</a>

in der XHTML-Definition ungültig ist. Bisher arbeitet sie noch mit den meisten Browsern.

Aber bereits der Internet Explorer 7.0 macht hier anscheinend Probleme, wie ich bis heute (22.10.06 ) feststellen konnte -- unabhängig des Dokumententyps.

 

Schade ist, dass es keinen vernünftigen Ersatz dafür gibt. Schließlich gibt es genügend Links, die unbedingt in einem neuen Fenster oder Tab gerendert werden sollten. Beispielsweise um dem Leser schnell mal eine optionale Ergänzung zur gerade aktiven Seite geben zu können.

 

embed-Attribut in Flash-, QVTR-Applets fehlt

 

Das embed-Attribut ist aus der XHTML-Spec ab 1.0 Transitional geflogen. Leider kommen einige Browser ohne es nicht zurrecht und können mit der <object>-Angabe alleine nichts anfangen.

 

Flash/QVTR

Hier habe ich noch keine Lösung gefunden. Das embed-Attribut wegzulassen bingt nichts und alle Java-Lösungen zielen nur darauf ab, das embed-Attrbut vor Validatoren zu verstecken. Ist es nicht toll, das W3C-Logo zu "ergaunern" und dem Browser die "Same Old Soup" zu verpassen?

 

Lösungsansatz für Stand-Alone-Java-Klasse:

<!-- Alle Browser inkl IE sehen die nächste Zeile -->
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab"
width="372" height="244">
<!--[if !IE]> Firefox und weitere sehen die nächste Zeile auch und nehmen dann auch diese zusätzlich, nicht aber der IE-->
<object classid="java:s3dview.class" type="application/x-java-applet" width="372" height="244">
<!--<![endif]-->
<param name="code" value="s3dview" />
.....
Bitte Java im Browser einschalten.
</object>
<!--[if !IE]> Zweites Object-Tag schließen -->
</object>
<!--<![endif]-->

 

Sollte die Java-Klasse im jar-Archiv stecken, dann so:

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab"
width="350" height="281">
<!--[if !IE]> Firefox und weitere sehen die nächste Zeile auch und nehmen dann auch diese zusätzlich -->
<object classid="java:s3dview.class" type="application/x-java-applet" width="350" height="281">
<!--<![endif]-->
<param name="code" value="s3dview" />
<param name="nFrames" value="47" />
....

Bitte Java im Browser einschalten.
</object>
<!--[if !IE]> Zweites Object-Tag schließen -->
</object>
<!--<![endif]-->

Quelle: http://ww2.cs.fsu.edu/~steele/XHTML/appletObject.html