<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"> 
<channel>
    

    <title>YAML 3.2 &#45; Sch&#228;rfung des Profils</title>
    <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
    <description>Schlankerer Framework&#45;Core

Die wichtigste &#196;nderung gleich zu Beginn: YAML besteht nunmehr nur noch aus zwei Kernbausteinen. Die base.css ist das Herzst&#252;ck des Frameworks und stellt dem Nutzer ein schonendes Browser&#45;Reset, oft ben&#246;tige CSS&#45;Klassen f&#252;r die Layouterstellung (Float Clearing, Skiplinks, ect.), die &#8220;Subtemplates&#8221; als flexible Grid&#45;Bausteine, ein universelles Fallback auf ein dreispaltiges Basislayout und wichtige Vorgaben f&#252;r eine fehlerfreie Druckausgabe bereit. &#220;ber den zweiten Baustein, die iehacks.css werden die &#228;lteren Versionen des Internet Explorers 5.x bis 7.0 mit Bugfixes versorgt, die so formuliert sind, dass sie ohne Eingreifen des Anwenders den &#252;berwiegenden Teil der CSS&#45;Bugs dieser Browser korrigieren. Der ehemaliige dritte Baustein, die print_base.css ist in der base.css aufgegangen.



Eine Umstrukturierung der medienspezifischen Definitionen innerhalb der base.css erm&#246;glichte weiterhin einige Vereinfachungen der Codebasis, sodass trotz der Erweiterung der Grid&#45;Komponente der gesamte Framework&#45;Core insgesamt fast 600 Byte (ca. 10%) kleiner geworden ist. Mit den Wegfall der print_base.css kann zudem ein HTTP&#45;Request eingespart werden (zumindest, wenn man die finalen Stylesheets nicht zusammenfasst) und in modernen Browsern wie dem Internet Explorer 8, Firefox, Opera, der Safari ben&#246;tigt der YAML&#45;Core nur noch 2,34 kB (slim_base.css). Ausschlie&#223;lich die veralteten Versionen des Internet Explorers 5.x  &amp;ndash; IE 7.0 m&#252;ssen den vollst&#228;ndige Core mit 5,04 kB laden.



Neue Features &amp;amp; Altlastenentsorgung

Wie mit fast jeder YAML&#45;Version wird auch mit YAML 3.2 der Funktionsumfang des Frameworks leicht erweitert. Die Subtemplates (die Grid&#45;Komponente von YAML) erh&#228;lt vier weitere Unterteilungen (20%, 40%, 60% und 80%). Selbstverst&#228;ndlich besteht auch hier die M&#246;glichkeit, gleiche Containerh&#246;hen &#252;ber die Klasse .equalize zu erzwingen. Daneben steht mit einem weiteren Add&#45;on, dem SyncHeight&#45;Plugin f&#252;r jQuery, eine JavaScript&#45;Alternative f&#252;r das Erzwingen gleichhoher Container zur Verf&#252;gung. 

Der Formularbaukasten ist ebenfalls flexibler geworden. So ist die Klasse .yform nicht mehr an das form&#45;Element gebunden, was den Einsatz in Content Management Systemen wie z.B. ExpressionEngine vereinfacht, bei denen der form&#45;Tag automatisch vom CMS generiert wird. Die zus&#228;tzliche Darstellungsklasse .full hilft bei Platzproblemen (schmale Formulare) und erzeugt Input&#45;, Select&#45;Felder und Textareas mit voller Breite des umgebenden Elternelementes. Ein neues Layoutbeispiel demonstriert, wie einfach und komfortabel sich mehrspaltige Formulare mit YAML erstellen lassen. 

Neben diesen neuen M&#246;glichkeiten, wurden mit diesem Release auch einige Altlasten beseitigt. So wurden die IE&#45;Fixes f&#252;r die ehemaligen ID&#8217;s #page_margins und #page aus der iehacks.css entfernt. Beide ID&#8217;s werden seit YAML 3.1 (Januar 2009) in mehrfach verwendbare Klassen umgewidmet. Einen echten Feature&#45;Drop betrifft der Verzicht auf die M&#246;glichkeit, Spaltenhintergr&#252;nde mit Hilfe der Border&#45;Definition von #col3 zu erzeugen. Zwar ist diese Technik denkbar einfach in der Umsetzung, sie beschw&#246;rt aber in Verbindung mit den Windows&#45;Kontrastmodi ein Zug&#228;nglichkeitsproblem herauf, da in diesen Modi Vordergrund&#45; und Rahmenfarben auf den gleichen Farbwert gesetzt werden, infolgedessen Inhalte mit dahinterliegenden farbigen Rahmen (den simulierten Spaltenhintergr&#252;nden) z.T. nicht mehr lesbar sind. Erschwerend kam hinzu, dass diese Technik im Internet Explorer ein Anpassung des z&#45;index von #col3 bedurfte, was in seltenen F&#228;llen das Selektieren von Inhalten mit der Maus im Browser blockierte. 

Ein oft diskutierter Punkt unter vielen Framework&#45;Anwendern war bisher der Workaround zur Vermeidung seitlich springender, zentierter Layouts im Firefox und Safari durch Erzwingen eines vertikalen Scrollbalkens. Mit der Ver&#246;ffentlichung der neuen Browsergenerationen Internet Explorer 8, Firefox 3.5, Safari 4 und Opera 10 wurde die bisherige L&#246;sung unbrauchbar und deshalb aus dem Core entfernt. An ihre Stelle tritt eine CSS3&#45;basierte L&#246;sung (overflow&#45;y: scroll), welche nunmehr in den Nutzerstylesheets (basemod.css) verankert ist und somit von jedem Anwender bei Nicht&#45;Gefallen einfach deaktiviert/entfernt werden kann. 

Ebenfalls ersatzlos gestrichen wurde das Debug&#45;Stylesheet (debug.css), welches mit der Version 3.0 Einzug in das Framework gehalten hatte. Zu sehr litt die &#220;bersicht bei der Vielzahl der gleichzeitig eingeblendeten Informationen. Die fehlende Konfigurierbarkeit und die umst&#228;ndlichen Handhabung waren ebenfalls nicht vorteilhaft. Mit dem bereits im Febuar 2009 ver&#246;ffentlichten Codeanalyse&#45;Tool YAML Debug steht YAML&#45;Entwicklern eine deutlich bessere und vielseitigere Alternative zur Verf&#252;gung, die mit einem einzigen Klick jedes Layout analysiert. 

Handwerkszeug f&#252;r die Barrierefreiheit

Kein Framework, auch nicht YAML, ist ein Garant f&#252;r barrierefreie Webseiten. Dennoch zeigt sich mehr und mehr, wie sinnvoll und richtig es ist, Webentwicklern das grundlegende Handwerkszeug innerhalb des Frameworks zur Verf&#252;gung zu stellen. In YAML 3.2 wird eine neue Darstellungsm&#246;glichkeit f&#252;r Skiplinks unterst&#252;tzt, die ein &#220;berlagern des Layouts f&#252;r die eingeblendeten Skiplinks erm&#246;glicht und dadurch die sonst &#252;blichen Probleme bei deren Integration beseitigt. Zudem wird f&#252;r Webkit&#45;basierte Browser ein JavaScript&#45;Fix mitgeliefert, um auch Apple&#8217;s Safari und Google Chrome dazu zu bewegen, den Focus auf die angesprungene ID zu setzen. 

Ein weiterer Schritt ist die konsequente Einbeziehung von WAI&#45;ARIA. S&#228;mtliche bei YAML mitgelieferte Beispiellayouts wurden mit ARIA&#45;Landmarkroles versehen. Zwar handelt es sich hierbei nicht wirklich um ein Feature des Frameworks (die korrekte Auszeichnung sollte der Webentwicklers vornehmen), dennoch halte ich auch diesen Schritt f&#252;r wichtig, um als Framework&#45;Entwickler trotz der noch fehlenden Validierungsm&#246;glichkeiten im W3C&#45;Validator die positiven Effekte des kommenden Standards hervorzuheben. Schon heute k&#246;nnen alle modernen Browser (einschlie&#223;lich des IE8) mit WAI&#45;ARIA umgehen und erm&#246;glichen somit einen deutlichen Zugewinn an Barrierefreiheit auf Webseiten jeder Komplexit&#228;tsstufe. 

Das &#8220;Accessible Tabs&#8221; Plugin von Dirk Ginader wird mit YAML 3.2 als Add&#45;on ein fester Bestandteil des Frameworks. Das dahinter stehende Konzept habe ich zusammen mit Dirk Ginader bereits vor zwei Jahren entwickelt, die Umsetzung im Rahmen dieses Plugins ist mittlerweile ausgereift und umfangreich getestet. Auch dieser Baustein ist weniger als Feature des Frameworks zu sehen. Stattdessen bem&#252;he ich mich darum, zusammen mit YAML sinnvolle Best&#45;Practice&#45;L&#246;sungen zu vermitteln und die Verbreitung dieser Techniken zu f&#246;rdern. 

Zusammenfassung

Neben diesen gro&#223;en Neuerungen/Verbesserungen stehen zahlreiche kleinere Korrekturen hier und da, &#252;ber die das Changelog im Detail Ausfunft gibt. Wie mit jedem Release wurde auch die Projektvorlage &#8220;Simple Project&#8221; auf den aktuellen Stand gebracht.Der YAML Builder beherrscht momentan WAI&#45;ARIA noch nicht und auch die neue Skiplink&#45;Variante ist dort noch nicht implementiert, die Codeausgabe ist aber selbstverst&#228;ndlich kompatibel zu YAML 3.2.

Der Release&#45;Zyklus war diesmal deutlich l&#228;nger, zudem zwischen v3.1 und v3.2 keine sogenannten Maintenance&#45;Releases eingeschoben wurden. Der Hauptgrund hierf&#252;r lag in der eng gestaffelten Ver&#246;ffentlichung der aktuellen Browsergeneration, angefangen mit dem Internet Explorer 8 im Fr&#252;hjahr 2009. Gerade bei diesem war es wichtig, die zuverl&#228;ssige Funktion der Kernfunktionen des Frameworks ohne jegliche Hacks zu &#252;berpr&#252;fen. Nach nunmehr einem halben Jahr l&#228;sst sich dieser Fakt best&#228;tigen. Einzig bei der Darstellung von Formularen ben&#246;tigt der Internet Explorer&#160;8 noch wenige individuelle Hilfestellung, die notwendigen Anpassungen kennt der Formularbaukasten jedoch.

Daneben stellt das 3.2&#45;Release f&#252;r mich eine weitere Sch&#228;rfung des Profils von YAML hinsichtlich des modularen Aufbaus auf Basis eines sehr schlanken Kerns und der Focussierung auf flexible, barrierefreie Webseiten dar. Und die Entwicklung geht weiter ...</description>
    <dc:language>de-de</dc:language>
    <dc:creator>Dirk Jesse</dc:creator>
    <dc:rights>Copyright 2009</dc:rights>
    <dc:date>2009-10-27T;22:19:21+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.expressionengine.com/" />
<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
         xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
    rdf:about="http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/"
    trackback:ping="http://www.highresolution.info/trackback/1384/yyWjUkHR/"
    dc:title="YAML 3.2 &#45; Sch&#228;rfung des Profils"
    dc:identifier="http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/" 
    dc:subject="YAML,Frameworks,JavaScript"
    dc:description="&amp;lt;h3&amp;gt;Schlankerer Framework&#45;Core&amp;lt;/h3&amp;gt; Die wichtigste &#196;nderung gleich zu Beginn: YAML besteht nunmehr nur noch aus &amp;lt;strong&amp;gt;zwei&amp;lt;/strong&amp;gt; Kernbausteinen. Die &amp;lt;em&amp;gt;base.css&amp;lt;/em&amp;gt; ist das Herzst&#252;ck des Frameworks und stellt dem Nutzer ein schonendes Browser&#45;Reset, oft ben&#246;tige CSS&#45;Klassen f&#252;r die Layouterstellung (Float Clearing, Skiplinks, ect.), die &quot;&amp;lt;em&amp;gt;Subtemplates&amp;lt;/em&amp;gt;&quot; als flexible Grid&#45;Bausteine, ein universelles Fallback auf ein dreispaltiges Basislayout und wichtige Vorgaben&#8230;"
    dc:creator="Dirk Jesse"
    dc:date="2009-10-27 10:19:21 PM GMT" />
</rdf:RDF>
--> 


    <item>
      <title>Kommentar von Frank</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Die Veränderungen klingen sehr interessant und vielversprechend.
Ich bin gespannt, wann der erste Baustein für mobile Geräte in YAML Einzug findet.

Das iPhone, die neuen Geräte von RIM und andere mobile Geräte betrachte ich als neue Herausforderung für YAML und die BF.

Weiter so !</description>
      <content:encoded><![CDATA[<p>Die Veränderungen klingen sehr interessant und vielversprechend.<br />
Ich bin gespannt, wann der erste Baustein für mobile Geräte in YAML Einzug findet.</p>

<p>Das iPhone, die neuen Geräte von RIM und andere mobile Geräte betrachte ich als neue Herausforderung für YAML und die BF.</p>

<p>Weiter so !
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Dave</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Bin gerade dabei meine erste YAML&#45; basierende Website zu erstellen. Die Zeit der Einarbeitung ist nichts im Vergleich zu den Nutzen die man aus diesem wirklich tollen Framework ziehen kann. Ich bereue dass ich mich nicht schon früher näher mit YAML beschäftigt habe.
Du nimmst uns Webworkern einen großen Teil lästiger Arbeit aus der Hand und dass zu wirklich fairen Konditionen. Vielen Dank!</description>
      <content:encoded><![CDATA[<p>Bin gerade dabei meine erste YAML- basierende Website zu erstellen. Die Zeit der Einarbeitung ist nichts im Vergleich zu den Nutzen die man aus diesem wirklich tollen Framework ziehen kann. Ich bereue dass ich mich nicht schon früher näher mit YAML beschäftigt habe.<br />
Du nimmst uns <i>Webworkern</i> einen großen Teil lästiger Arbeit aus der Hand und dass zu wirklich fairen Konditionen. Vielen Dank!
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Helmut Sieghartsleitner</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Hallo Dirk,
vielen vielen Dank für Deine Arbeit. Durch das Framework habe ich sehr viel über das Verhalten von CSS und HTML lernen können. Auch wenn die Einarbeit ins Framework vielleicht etwas zeitaufwendiger ist, es lohnt sich auf jeden Fall.</description>
      <content:encoded><![CDATA[<p>Hallo Dirk,<br />
vielen vielen Dank für Deine Arbeit. Durch das Framework habe ich sehr viel über das Verhalten von CSS und HTML lernen können. Auch wenn die Einarbeit ins Framework vielleicht etwas zeitaufwendiger ist, es lohnt sich auf jeden Fall.
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Thomas Weise</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Auch von mir wieder ein Dankeschön für die neue Version. Schön auch, dass Du das Deutsch weiter pflegst ;&#45;)
&#45;heutabendgleichmalreinguck&#45;</description>
      <content:encoded><![CDATA[<p>Auch von mir wieder ein Dankeschön für die neue Version. Schön auch, dass Du das Deutsch weiter pflegst ;-)<br />
-heutabendgleichmalreinguck-
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Andreas Hecht</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Hallo Dirk,

dankeschön für die wunderbare Arbeit! Ich werde es mir in den nächsten Tagen mal genauer anschauen (besonders das wunderbare forms.css)&amp;nbsp; und mit Sicherheit auch wieder einsetzen.

Und natürlich gleich mal testen, ob der Opera Bug im forms.css behoben ist und wie Dein Lösungsansatz dafür ausgefallen ist ;&#45;)</description>
      <content:encoded><![CDATA[<p>Hallo Dirk,</p>

<p>dankeschön für die wunderbare Arbeit! Ich werde es mir in den nächsten Tagen mal genauer anschauen (besonders das wunderbare forms.css)&nbsp; und mit Sicherheit auch wieder einsetzen.</p>

<p>Und natürlich gleich mal testen, ob der Opera Bug im forms.css behoben ist und wie Dein Lösungsansatz dafür ausgefallen ist ;-)
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Basti Schmuttermaier</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Respekt, Hut ab und weiter so! Ein riesengroßes Dankeschön an Dirk und all die helfenden Hände die im Hintergrund wirbeln um solch ein Projekt möglich zu machen!</description>
      <content:encoded><![CDATA[<p>Respekt, Hut ab und weiter so! Ein riesengroßes Dankeschön an Dirk und all die helfenden Hände die im Hintergrund wirbeln um solch ein Projekt möglich zu machen!
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Antonio</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Klasse Arbeit, danke!

&amp;gt; Und die Entwicklung geht weiter&#8230;

...was für alle YAML&#45;Freunde noch das Sahnehäubchen ist ;&#45;)</description>
      <content:encoded><![CDATA[<p>Klasse Arbeit, danke!</p>

<p>&gt; Und die Entwicklung geht weiter&#8230;</p>

<p>...was für alle YAML-Freunde noch das Sahnehäubchen ist ;-)
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Kersten</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Sehr gute Arbeit, Dirk. Applaus&#8230;</description>
      <content:encoded><![CDATA[<p>Sehr gute Arbeit, Dirk. Applaus&#8230;
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Dirk Jesse</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>@Jared,

ja, in 90% der Fälle sollte ein Austausch ohne Störungen möglich sein. Die vordefinierten Verhaltensweisen sich ja nicht geändert und solange man die Bausteine bei der Anwendung nicht großartig &#8220;verbiegt&#8221; ist keine Nacharbeit erforderlich. YAML.de läuft ebenso seit kurzem auf der 3.2.</description>
      <content:encoded><![CDATA[<p>@Jared,</p>

<p>ja, in 90% der Fälle sollte ein Austausch ohne Störungen möglich sein. Die vordefinierten Verhaltensweisen sich ja nicht geändert und solange man die Bausteine bei der Anwendung nicht großartig &#8220;verbiegt&#8221; ist keine Nacharbeit erforderlich. YAML.de läuft ebenso seit kurzem auf der 3.2.
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Jared</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Hallo Dirk,

das Update habe ich ja wirklich schon sehnsüchtig erwartet ;) danke dir für deine Mühe! 
Das ist für mich wie ein 2tes Weihnachten!!!

Bevor ich den YAML Core aktualisiere &#45; ist ohne weiteres möglich den bisherigen YAML Ordner (Version 3.1) im Projekt zu löschen und mit der aktualisierten YAML Version 3.2 zu ersetzen?
Die Core Dateien habe ich zumindest nie angefasst &#45; alle Deklarationen stehen, wie es sich gehört, in den basemod.css Dateien&#8230;

Liebe Gräße</description>
      <content:encoded><![CDATA[<p>Hallo Dirk,</p>

<p>das Update habe ich ja wirklich schon sehnsüchtig erwartet ;) danke dir für deine Mühe! <br />
Das ist für mich wie ein 2tes Weihnachten!!!</p>

<p>Bevor ich den YAML Core aktualisiere - ist ohne weiteres möglich den bisherigen YAML Ordner (Version 3.1) im Projekt zu löschen und mit der aktualisierten YAML Version 3.2 zu ersetzen?<br />
Die Core Dateien habe ich zumindest nie angefasst - alle Deklarationen stehen, wie es sich gehört, in den basemod.css Dateien&#8230;</p>

<p>Liebe Gräße
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Gerrriet</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Hallo ;D

Ich kann dem Tekl da nur zustimmen. Bin schon sehr lange ein Fan von YAML. Gut finde ich auch, das du an diejenigen auch denkst, die nicht sogut englisch können.

Schön wäre es, wenn es ein Offline Version vom YAML Bulder gebe. Da ich zur Zeit ohne Internet zuhause sitze, wäre das sehr von Vorteil ;D</description>
      <content:encoded><![CDATA[<p>Hallo ;D</p>

<p>Ich kann dem Tekl da nur zustimmen. Bin schon sehr lange ein Fan von YAML. Gut finde ich auch, das du an diejenigen auch denkst, die nicht sogut englisch können.</p>

<p>Schön wäre es, wenn es ein Offline Version vom YAML Bulder gebe. Da ich zur Zeit ohne Internet zuhause sitze, wäre das sehr von Vorteil ;D
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Tekl</title>
      <link>http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/</link>
      <description>Hallo Dirk,

vielen Dank für dieses tolle Framework. Es ist nicht nur sehr hilfreich, sondern auch extrem lehrreich.

Gruß, Tekl</description>
      <content:encoded><![CDATA[<p>Hallo Dirk,</p>

<p>vielen Dank für dieses tolle Framework. Es ist nicht nur sehr hilfreich, sondern auch extrem lehrreich.</p>

<p>Gruß, Tekl
</p>]]></content:encoded>
    <dc:date>2010-02-12T;11:37:10+00:00</dc:date>
    </item>
 

</channel>
</rss>