|
<< Click to Display Table of Contents >> RayQC Advanced > 2026.3 > User Guide > Regelübersicht > Browser-Kompatibilitätstest Internet Explorer 9 |
Im Folgenden sind die Regeln aufgeführt, mit denen eine Webanwendung auf die Bereitschaft für Internet Explorer 9 geprüft werden kann.
W001 - Veraltete HTML-Tags |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung veralteter HTML-Tags und JavaScript-Methoden. |
Hintergrund: In Windows Internet Explorer 9 gibt es eine Reihe veralteter HTML-Tags und zugehöriger JavaScript-Methoden. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ff806183%28v=vs.94%29.aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass die veralteten HTML-Tags nicht mehr verwendet werden. Mit CSS und JavaScript kann die gleiche Funktionalität erreicht werden. |
W002 - Kompatibilität des DHTML-Bearbeitungssteuerelements |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung des ActiveX-DHTML-Bearbeitungssteuerelements. |
Hintergrund: Seit Windows Internet Explorer 5 ist das DHTML-Bearbeitungssteuerelement für HTML, Active Server Pages (ASP), ASP.NET-Seiten und andere über HTTP aufgerufene Dokumente verfügbar. Aus Sicherheitsgründen wurde die Unterstützung für dieses Steuerelement von Microsoft seit Windows Vista, das mit Windows Internet Explorer 7 ausgeliefert wurde, eingestellt. Webanwendungen können das Steuerelement möglicherweise nicht laden, wenn sie das DHTML-Bearbeitungssteuerelement für Scripting implementiert haben (<Object ID="editor">). In diesem Fall wird ein Bildplatzhalter angezeigt. Außerdem können Ausnahmen von Skripts ausgelöst werden, die auf das Steuerelement verweisen. Da die Skriptauswertung durch Skriptausnahmen beendet wird, können auch andere vom Skript gesteuerte Funktionen nicht mehr funktionieren. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/aa663363.aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass das DHTML-Bearbeitungssteuerelement nicht mehr verwendet wird. Es gibt ein herunterladbares Originalsteuerelement in einem signierten Windows Installer-Paket namens DHTMLEd.msi, das von Microsoft bereitgestellt wird und verwendet werden kann, wenn eine Umgestaltung nicht praktikabel ist. (Achtung: Dies ist ein Workaround! Die von Microsoft identifizierten Sicherheitsrisiken bleiben bestehen, da die Anwendung selbst unverändert bleibt.) |
W003 - Kompatibilität der CreateElement()-Methode |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf spitze Klammern in Argumenten, die an die Methode createElement() übergeben werden. |
Hintergrund: Ein Elementknoten in der DOM-Hierarchie (Document Object Model) wird durch die Methode createElement() erstellt. Seit Windows Internet Explorer 9 wurde die Unterstützung für die Verwendung von spitzen Klammern (< >) innerhalb der Methode createElement() von Microsoft eingestellt. Wenn diese Zeichen im Argument der Methode createElement() enthalten sind, können Teile der Webanwendung möglicherweise nicht funktionieren. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ff986077(v=VS.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass keine spitzen Klammern in der Methode createElement() mehr verwendet werden. Übergeben Sie stattdessen den Elementnamen und verwenden Sie die Methode setAttribute(), um die Werte der erforderlichen Attribute festzulegen. |
W004 - Veraltetes arguments.caller |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Eigenschaft arguments.caller. |
Hintergrund: Vor Windows Internet Explorer 9 wurde zusammen mit der Erstellung von Argumentobjekten eine Eigenschaft namens „caller" erstellt. Der Verweis auf das Argumentobjekt der Funktion, die das Argumentobjekt ursprünglich aufgerufen hatte, wurde in dieser Eigenschaft gespeichert. Seit Windows Internet Explorer 9 wird die Eigenschaft arguments.caller von Microsoft nicht mehr unterstützt. Der Skriptfehler „Objekt ist null oder nicht definiert" tritt auf, wenn ein Skript versucht, diese Eigenschaft zu verwenden. Dadurch können Teile der Webanwendung möglicherweise nicht mehr funktionieren. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/gg622933(v=VS.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass die Eigenschaft arguments.caller nicht mehr verwendet wird. Verwenden Sie die Kompatibilitätsansicht von Windows Internet Explorer 8, wenn dies nicht praktikabel ist. Aktivieren Sie die Ansicht mithilfe des Meta-Attributwerts „X-UA-Compatible". |
W005 - Veraltete DOM-Ereignisfunktionen (Document Object Model) |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf folgende DOM-Ereignisfunktionen: attachEvent(), detachEvent(), createEventObject() und fireEvent(). |
Hintergrund: Die folgenden DOM-Ereignisfunktionen werden von Microsoft seit Windows Internet Explorer 9 nicht mehr unterstützt: attachEvent(), detachEvent(), createEventObject() und fireEvent(). |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass die veralteten DOM-Ereignisfunktionen nicht mehr verwendet werden. Es gibt W3C-standardkonforme Ersatzfunktionen, die stattdessen verwendet werden sollten. |
W006 - Kompatibilität bedingter Kommentare |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf bedingte Kommentare, die zur Erkennung der Versionsnummer des Windows Internet Explorer verwendet werden. (Achtung: Diese Regel kann falsch positive Ergebnisse für Webanwendungen liefern, die bedingte Kommentare zur Behebung bekannter visueller Fehler für ältere Windows Internet Explorer-Versionen verwenden!) |
Hintergrund: Der Windows Internet Explorer stellt nicht standardmäßige bedingte Kommentare bereit, die verwendet werden, um Inhalte bereitzustellen, die für einen bestimmten Browser optimiert sind, z. B. die Verwendung von spezifischem HTML-, CSS- oder JavaScript-Code (<!--[if IE 7]> <p>You are using Windows Internet Explorer 7.</p> <![endif]-->). Webanwendungen, die bedingte Kommentare verwenden, liefern möglicherweise inkompatible Inhalte, da Windows Internet Explorer 9 nicht erkannt wird, weil die Hauptversionsnummer in Windows Internet Explorer 9 geändert wurde. |
Weitere Informationen: http://support.microsoft.com/kb/2489698 |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass keine bedingten Kommentare mehr verwendet werden. Stattdessen sollten W3C-Vorschläge wie die JavaScript-basierte Feature-Erkennung verwendet werden. |
W007 - Geänderter User-Agent-String |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung des User-Agent-Strings zur Browser- oder Systemerkennung. Die gängigen JavaScript-Frameworks jQuery, jQuery UI, Prototype, MooTools und Cufon werden nicht gescannt. (Achtung: Diese Regel kann falsch positive Ergebnisse für Webanwendungen liefern, die den User-Agent-String für ergänzende Zwecke wie die statistische Datenerfassung verwenden.) |
Hintergrund: Der User-Agent-String übermittelt beim Zugriff auf eine Webanwendung Browserdetails wie Name, Versionsnummer, ausgeführte Plattform usw. an den Hostserver (User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)). Diese Informationen können verwendet werden, um Inhalte bereitzustellen, die für den jeweiligen Browser optimiert wurden. Einige Webanwendungen erkennen den User-Agent-String möglicherweise nicht und liefern daher inkompatible Inhalte, da der User-Agent-String in Windows Internet Explorer 9 geändert wurde. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/cc848857%28v=vs.85%29.aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass nicht der User-Agent-String, sondern die Feature-Unterstützungserkennung verwendet wird. Verwenden Sie die Kompatibilitätsansicht von Windows Internet Explorer 7, wenn dies nicht praktikabel ist. Aktivieren Sie die Ansicht mithilfe des Meta-Attributwerts „X-UA-Compatible". |
W008 - Verwendung der Ereignisse "onload" und "onreadystatechange" |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Zuweisung beider Ereignisse ("onload" und "onreadystatechange") zu einem Skriptelement. |
Hintergrund: Das standardbasierte und interoperable load-Ereignis für Skriptelemente wurde in Windows Internet Explorer 9 eingeführt. Vor der Einführung von Windows Internet Explorer 9 war das einzige für Skriptelemente unterstützte Ereignis das nicht interoperable Ereignis "onreadystatechange". Dieses Ereignis wird in Windows Internet Explorer noch unterstützt, um die Kompatibilität bestehender Websites sicherzustellen. Für Seiten, die sich sowohl für "onload" als auch für "onreadystatechange"-Ereignisse registrieren, kann es nun zwei Callbacks geben. Dies kann zu unerwarteten Ergebnissen oder zum Fehler eines Teils der Webanwendung führen. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/hh180173(v=VS.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass ausschließlich das Ereignis "onload" für Skripte verwendet wird, die ein load-Ereignis benötigen. |
W009 - JavaScript-Framework-Kompatibilität |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung älterer Versionen von JavaScript-Frameworks, die nicht mit Windows Internet Explorer 9 kompatibel sind. Die Frameworks jQuery (vor 1.5.1), jQuery UI (vor 1.6.8), MooTools (vor 1.3), Prototype (vor 1.7) und Cufon (vor 1.09i) werden gescannt. |
Hintergrund: Mit Windows Internet Explorer 9 wurden von Microsoft Features zur Verbesserung der Standardkonformität und Interoperabilität mit anderen Webbrowsern eingeführt und geändert. Viele JavaScript-Frameworks haben Hilfsprogramme, die auf Funktionen früherer Versionen von Windows Internet Explorer angewiesen sind. In Windows Internet Explorer 9 funktionieren einige bekannte JavaScript-Frameworks möglicherweise nicht wie erwartet. Die meisten dieser JavaScript-Frameworks haben bereits Updates erhalten, um dies zu beheben. Dennoch gibt es noch viele Webanwendungen, in denen die älteren Versionen dieser Frameworks noch verwendet und noch nicht aktualisiert wurden. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/hh180175(v=VS.85).aspx |
Manuelle Problembehebung: Bitten Sie den Hersteller, ein mit Microsoft Internet Explorer 9 kompatibles Framework bereitzustellen. Verwenden Sie die Kompatibilitätsansicht von Windows Internet Explorer 7, wenn kein kompatibles Framework verfügbar ist. Aktivieren Sie die Ansicht mithilfe des Meta-Attributwerts „X-UA-Compatible". |
W010 - Unkonventionelle Protokoll-Handler |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung unkonventioneller Protokolle in Skriptumleitungen und Hyperlinks. |
Hintergrund: Das Präfix der URL-Adresse verweist auf einen Protokollnamen (http://www.raynet.de für ein HTTP-Protokoll, javascript:alert('Welcome') für ein JavaScript-Protokoll). Eine Anwendung kann für ein URL-Protokoll registriert werden. In diesem Fall wird seit Windows Internet Explorer 9 der Anwendungsprotokoll-Handler-Dialog angezeigt, wenn die Anwendung gestartet wird. Dies ist eine Sicherheitsfunktion, die Benutzer vor der Ausführung einer Anwendung mit gefährlichem oder bösartigem Inhalt schützen soll. Der Dialog wird bei jeder Ausführung der Anforderung angezeigt, bis der Dialog für dieses Protokoll deaktiviert wurde. Wenn keine Anwendung für ein URL-Protokoll registriert ist, wird die Information angezeigt, dass ein nicht installiertes Programm für den Start der Webanwendung erforderlich ist. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/dd565637(VS.85).aspx |
Manuelle Problembehebung: Deaktivieren Sie das Kontrollkästchen „Vor dem Öffnen dieser Art von Adresse immer fragen", nachdem Sie einen Link verwendet haben, um weitere Anzeigen des Anwendungsprotokoll-Handler-Dialogs durch Windows Internet Explorer 9 zu verhindern. Teile einer Webanwendung funktionieren möglicherweise nicht, wenn keine Anwendung für die Verarbeitung eines nicht standardmäßigen Protokolls konfiguriert ist. |
W011 - Änderungen am Statusleistentext |
Beschreibung: RayQC Advanced überprüft die JavaScript-Eigenschaften window.status und window.defaultStatus auf die Verwendung von Skripten, die den Inhalt der Statusleiste ändern. |
Hintergrund: Seit Windows Internet Explorer 7 dürfen Webanwendungen keine Skripte mehr verwenden, um die Statusleiste in der Internet- oder eingeschränkten Zone zu konfigurieren. Daher können Aufrufe der JavaScript-Eigenschaften window.status oder window.defaultStatus möglicherweise unbemerkt fehlschlagen. Durch diese Maßnahme sollten Angreifer nicht mehr in der Lage sein, die Statusleiste zu fälschen. |
Weitere Informationen: http://msdn.microsoft.com/en-us/ie/aa740486 |
Manuelle Problembehebung: Aktivieren Sie das Kontrollkästchen „Aktualisierungen der Statusleiste über Skript zulassen" in der benutzerdefinierten Sicherheitsstufe in den Internetoptionen von Windows Internet Explorer 9, um die Konfiguration der Statusleiste durch Skripte zu ermöglichen, die die Methoden window.status und window.defaultStatus verwenden. |
W012 - Veraltete dynamische Eigenschaften |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf veraltete dynamische Eigenschaften in CSS- oder JavaScript-Code. |
Hintergrund: Durch die Verwendung dynamischer CSS-Eigenschaften seit Windows Internet Explorer 5 konnten Eigenschaftswerte als Formeln und nicht nur als Konstanten festgelegt werden. Autoren konnten mithilfe einer dynamischen Eigenschaft auf Eigenschaftswerte anderer Werte verweisen und erhielten dadurch eine beispiellose Flexibilität beim Entwurf ihrer Webseiten. Dies führte jedoch auch zu nachteiligen Auswirkungen auf die Standardkonformität, Leistung, Zuverlässigkeit und Sicherheit. Dynamische Eigenschaften sind seit Windows Internet Explorer 8 veraltet, aber es gibt noch Unterstützung für Webanwendungen, die dynamische Eigenschaften verwenden und im Windows Internet Explorer 5 (Quirks)-Modus oder im Windows Internet Explorer 7-Standardmodus angezeigt werden. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx |
Manuelle Problembehebung: Ersetzen Sie die Funktionalität dynamischer Eigenschaften durch JavaScript-Ereignislistener. |
W013 - Konformität mit den RFC-Richtlinien (Request for Comments) |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung von URLs, die die Anforderungen der RFC 3986- und RFC 3987-Richtlinien nicht erfüllen. |
Hintergrund: Um zu verhindern, dass fehlerhafte URLs Windows Internet Explorer täuschen, wird die URL seit Windows Internet Explorer 7 nach der Eingabe in die Adressleiste analysiert, um sicherzustellen, dass sie den RFC-Richtlinien entspricht. Der Webanwendung wird es ermöglicht, mit eingeschränkter Funktionalität zu erscheinen, wenn sie den Verifizierungsprozess nicht besteht. Dies kann zu einem unerwarteten Verhalten der Webanwendung führen. |
Weitere Informationen: https://msdn.microsoft.com/en-us/library/dd565653(v=vs.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung um und stellen Sie sicher, dass alle in der Webanwendung verwendeten URLs die Anforderungen der RFC 3986- und RFC 3987-Richtlinien erfüllen. |
W014 - CSS-Kompatibilität |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung von CSS-Features, die von Windows Internet Explorer 9 nicht unterstützt werden. |
Hintergrund: Die Unterstützung für den W3C-CSS-Standard wurde mit jeder neuen Version von Windows Internet Explorer verbessert (:focus {sRules} wird von Windows Internet Explorer 9 unterstützt, aber nicht von Windows Internet Explorer 7). Windows Internet Explorer 9 ist vollständig konform mit CSS 2.1. Außerdem werden viele CSS 3-Features unterstützt. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/cc351024(v=vs.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass nur CSS-Features verwendet werden, die von Windows Explorer 9 unterstützt werden. |
W015 - XSLT (Extensible Stylesheet Language Transformations) Änderungen |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung nicht unterstützter XSLT-Elemente. Ältere XSL-Namespaces, ältere Stylesheet-Verarbeitungsanweisungen und XSLT-Ausgabedirektiven werden gescannt. |
Hintergrund: XSLT wird zur Änderung von XML-Dokumenten verwendet und ist eine deklarative, auf XML basierende Sprache. Die Verarbeitung von XML- und XSLT-Dateien wurde seit Windows Internet Explorer 9 zur Verbesserung der Konformität mit den Standards anderer Browser und der Kompatibilität mit anderen Browsern geändert. Hauptsächlich wurden einige der nicht standardmäßigen Verhaltensweisen bei der Verarbeitung von XSLT-Dateien geändert. Dies kann dazu führen, dass Webanwendungen ein unerwartetes Verhalten oder eine eingeschränkte Funktionalität zeigen. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/hh180178(v=vs.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung durch Migration zu einem kompatiblen und standardisierten XSLT-Namespace um. Microsoft hat einige Migrationsszenarien vorbereitet. |
W017 - Referenz veralteter DirectX-basierter Filter und Übergänge |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung DirectX-basierter Filter und Übergänge, die in Windows Internet Explorer 9 nicht mehr unterstützt werden. |
Hintergrund: Seit Windows Internet Explorer 4.0 durften Webentwickler mithilfe einer Reihe von visuellen Filtern und Übergängen Multimediastil-Effekte zu ihren Webseiten hinzufügen. Sie werden DX-Filter genannt, wegen ihrer zugrunde liegenden Implementierung, DirectX, und ihrer Langformsyntax (filter:progid:DXImageTransform.Microsoft.Alpha(opacity=75)). Seit Windows Internet Explorer 9 gibt es eine standardbasierte Alternative zu gängigen DX-Filtern. In Windows Internet Explorer 9 können Sie das Legacy-Feature noch in den Dokumentmodi 5, 7 und 8 verwenden, obwohl die Leistung im Vergleich zu ihren hardwarebeschleunigten, standardbasierten Ersatzfunktionen minderwertig ist. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ms532853%28v=vs.85%29.aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass standardbasierte Technologien verwendet werden. Verwenden Sie die Kompatibilitätsansicht von Windows Internet Explorer, wenn dies nicht praktikabel ist. Aktivieren Sie die Ansicht mithilfe des Meta-Attributwerts „X-UA-Compatible". |
W020 - Kompatibilität von XML-Dateninseln |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf die Verwendung veralteter XML-Dateninseln |
Hintergrund: Die Unterstützung für XML-Dateninseln wurde von Microsoft seit Windows Internet Explorer 10 eingestellt. Sie werden nun in HTML analysiert, um die Kompatibilität und Konformität mit HTML5 zu verbessern. Seiten, die für Windows Internet Explorer geschrieben wurden, oder Seiten, die Browser-Sniffing verwenden, um ihr Verhalten in Windows Internet Explorer zu ändern, werden davon beeinflusst. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ie/hh801224(v=vs.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass XML-Dateninseln nicht mehr verwendet werden. Verwenden Sie stattdessen andere Technologien oder Meta-Tags, die die Dokumentkompatibilität mit Microsoft Internet Explorer 10 definieren können. |
W021 - Fehlende Touch-Erkennung |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf JavaScript-Eigenschaften, die zur Rückgabe der Anzahl von Touch-Punkten verwendet werden. |
Hintergrund: Die Feature-Erkennung als Methode zur Bestimmung der Touchscreen-Unterstützung eines Geräts wird in Windows Internet Explorer 9 nicht unterstützt. Die Eigenschaft msMaxTouchPoints, die die maximale Anzahl unterstützter Touch-Punkte zurückgibt, gibt in Windows Internet Explorer 9 nur „undefined" zurück. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ie/hh772144(v=vs.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass die Eigenschaft msMaxTouchPoints nicht mehr verwendet wird. |
W026 - Bindung binärer Element-Verhaltensweisen |
Beschreibung: RayQC Advanced überprüft die Webanwendung auf binäre Verhaltensweisen, die nicht mehr automatisch gebunden werden. |
Hintergrund: Um eine größere Konsistenz mit anderen gängigen Browsern zu gewährleisten, bindet Internet Explorer binäre Element-Verhaltensweisen nicht automatisch. |
Weitere Informationen: http://msdn.microsoft.com/en-us/library/ff986078(v=vs.85).aspx |
Manuelle Problembehebung: Entwickeln Sie die Webanwendung so um, dass keine manuell bindenden Steuerelemente verwendet werden. |