Im November, mit der Veröffentlichung von Chrome 108, werden einige Änderungen am Verhalten des Layout-Viewports vorgenommen, wenn die Bildschirmtastatur angezeigt wird. Durch diese Änderung wird in Chrome für Android nicht mehr der Layout-Darstellungsbereich, sondern nur noch der visuelle Darstellungsbereich angepasst. Dadurch entspricht Chrome unter Android dem Verhalten von Chrome unter iOS und Safari unter iOS.
Im Folgenden finden Sie weitere Informationen dazu, was genau passiert, warum diese Änderung in Chrome vorgenommen wird und wie Sie sich darauf vorbereiten können.
Layout- und visueller Darstellungsbereich
Wenn Sie eine Website besuchen, sehen Sie nach dem Laden nicht den gesamten Inhalt der Seite. Stattdessen bietet der Browser einen Darstellungsbereich, über den Sie einen Teil der Seite sehen. Dieser Ansichtsbereich wird auch als Layout-Ansichtsbereich bezeichnet. Wenn der Inhalt einer Seite zu groß wird, bietet der Browser einen Scrollmechanismus.
Wenn Sie Elemente mit position: fixed
positionieren, werden sie anhand dieses Layout-Viewports angeordnet. Da der Layout-Betrachter beim Scrollen auf einer Seite an seiner Position bleibt, bleiben auch Elemente, für die position: fixed
verwendet wird, an ihrer Position.
Neben diesem Layout-Viewport bietet der Browser auch einen visuellen Darstellungsbereich. Er stellt den Teil des Darstellungsbereichs dar, der derzeit sichtbar ist. Bei Zoomstufe 1 ist dieser visuelle Darstellungsbereich so groß wie der Layout-Darstellungsbereich.
Wenn Sie heranzoomen, verkleinern Sie den visuellen Darstellungsbereich im Verhältnis zum Layout-Darstellungsbereich.
Verhalten beim Ändern der Größe des Darstellungsbereichs
Wenn Sie den Fokus auf ein Eingabefeld oder einen anderen bearbeitbaren Bereich legen, wird auf Geräten – meist mit Touchscreen – möglicherweise eine Bildschirmtastatur angezeigt. Diese Tastatur, die oft als virtuelle Tastatur bezeichnet wird, ermöglicht es Nutzern, Inhalte in den bearbeitbaren Bereich einzugeben.
Wenn dies geschieht, reagieren die Browser auf eine der folgenden Arten in Bezug auf die verschiedenen Darstellungsbereiche:
- Ändern Sie nur die Größe des visuellen Darstellungsbereichs und verschieben Sie den Layout-Darstellungsbereich.
- Passen Sie die Größe des visuellen Darstellungsbereichs und des Layoutdarstellungsbereichs an.
- Ändern Sie nicht die Größe des Layout-Darstellungsbereichs oder des visuellen Darstellungsbereichs, indem Sie die Bildschirmtastatur über beide Bereiche legen.
Diese drei Verhaltensweisen werden so visualisiert:
Je nachdem, welche Kombination aus Browser und Betriebssystem ein Besucher verwendet, wird eines der Verhaltensweisen verwendet, was außerhalb Ihrer Kontrolle liegt.
Zuordnung der verschiedenen Verhaltensweisen zur Größenanpassung
Im Rahmen der Viewport Investigation Effort (Viewport-Untersuchung) im Rahmen von Interop 2022 wurden verschiedene Viewport-bezogene Aspekte für alle gängigen Browser- und Betriebssystemkombinationen untersucht.
Einer der getesteten Aspekte ist das Verhalten beim Ändern der Größe, wenn die On-Screen-Tastatur angezeigt wird. Dies führte zur folgenden Klassifizierung:
Gruppe 1
Browser, die die Größe des visuellen Darstellungsbereichs ändern, den Layout-Darstellungsbereich aber unverändert lassen
- Safari auf iOS-Geräten
- Safari unter iPadOS
- Chrome unter ChromeOS
- Chrome unter iOS
- Chrome unter iPadOS
- Edge für iOS
- Edge unter iPadOS
Gruppe 2
Browser, die sowohl den visuellen als auch den Layout-Darstellungsbereich ändern.
- Chrome für Android
- Firefox für Android
- Edge auf Android
- Firefox für iOS
Gruppe 3
Browser, die die Größe von keinem Darstellungsbereich anpassen:
- Standardmäßig keine. In Chrome für Android können Sie dieses Verhalten über die VirtualKeyboard API aktivieren.
Nebenwirkungen der einzelnen Verhaltensweisen
Dieser Unterschied bei der Größenänderung der verschiedenen Ansichten, wenn die On-Screen-Tastatur angezeigt wird, führt zu einem nicht interoperablen Layout und Größenverhalten von Websites.
In den Browsern aus Gruppe 1, in denen die Onscreen-Tastatur angezeigt wird:
- Die berechneten Werte für viewport-relative Einheiten bleiben gleich.
- Elemente, die den gesamten visuellen Bereich einnehmen sollen, behalten ihre Größe.
- Elemente, für die
position: fixed
verwendet wird, bleiben an Ort und Stelle und können von der On-Screen-Tastatur verdeckt werden.
In den Browsern aus Gruppe 2, in denen die Onscreen-Tastatur angezeigt wird:
- Die berechneten Werte für viewportbezogene Einheiten schrumpfen.
- Elemente, die den gesamten visuellen Bereich einnehmen sollen, werden verkleinert.
- Elemente, für die
position: fixed
verwendet wird, können sich an anderer Stelle im Layout befinden.
Sofern Sie nicht auf User-Agent-Sniffing oder umfangreiches Scripting zurückgreifen, können Sie nicht wissen, welches Verhalten verwendet wird. Sie können das Verhalten auch nicht ändern, da es von der Kombination aus Browser und Betriebssystem des Nutzers abhängt.
Standardverhalten in Chrome 108 ändern
Ab Chrome 108 wird das Verhalten zur Größenanpassung des Darstellungsbereichs in Chrome unter Android so angepasst, dass die Größe des Layout-Darstellungsbereichs nicht mehr angepasst wird, wenn die Bildschirmtastatur eingeblendet wird.
Dadurch wird das Verhalten von Chrome unter Android an das von Chrome unter iOS, iPadOS, Windows und CrOS, Safari unter iOS und iPadOS und Edge unter iOS, iPadOS und Windows angepasst.
Dank dieser Änderung können Autoren erkennen, welches Verhalten verwendet wird – unabhängig davon, auf welchem Betriebssystem Chrome ausgeführt wird. Darüber hinaus ermöglicht es stabile, relative Einheiten des Darstellungsbereichs: Das Anzeigen oder Ausblenden des OSK hat keine Auswirkungen auf diese Einheiten.
Anderes Verhalten aktivieren
Wenn Sie das Größenänderungsverhalten vor Version 108 für Ihre Website verwenden möchten, ist das kein Problem. In Chrome 108 wird außerdem eine Erweiterung des Darstellungsbereich-Meta-Tags eingeführt.
Mit der Taste interactive-widget
können Sie Chrome mitteilen, wie die Größe geändert werden soll.
Zulässige Werte für interactive-widget
sind:
resizes-visual
: Nur den visuellen Darstellungsbereich, nicht den Layout-Darstellungsbereich, ändern.resizes-content
: Ändern Sie die Größe sowohl des visuellen als auch des Layout-Darstellungsbereichs.overlays-content
: Ändern Sie die Größe der Darstellung nicht.
Wenn Sie das alte Chrome-Verhalten auf Android-Geräten wieder aktivieren möchten, legen Sie das Viewport-Meta-Tag so fest:
<meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content">
Wenn Sie interactive-widget
nicht in das Meta-Tag „viewport“ einfügen, verwendet Chrome das Standardverhalten, also resizes-visual
.
In der Visualisierung wirken sich die Einstellungen wie folgt auf die verschiedenen Darstellungsbereiche aus:
Auf dieser Demowebsite können Sie die Auswirkungen der einzelnen Werte in Ihrem Browser ausprobieren.
Tests und Feedback
Wir gehen davon aus, dass es bei bestehenden Websites zu einigen geringfügigen Unterschieden kommt. Diese sollten jedoch nicht störend sein, da sich Chrome 108 auf Android-Geräten jetzt ähnlich wie Safari auf iOS verhält. Websites, die in Safari auf iOS einwandfrei funktionieren, sollten daher auch in Chrome 108 auf Android einwandfrei funktionieren.
Wir empfehlen Websiteinhabern jedoch, ihre Websites aktiv in Chrome 108 zu testen. Chrome 108 befindet sich seit dem 27. Oktober 2022 in der Betaphase. Achten Sie insbesondere auf Elemente, die position: fixed
verwenden und/oder auf Darstellungsbereich-relative Einheiten angewiesen sind.
Feedback kann unter crbug.com gemeldet werden. Geben Sie im Titel des Berichts unbedingt „On-Screen-Tastatur“ an.