jenkins-bot has submitted this change and it was merged.

Change subject: FieldsetLayout: Make use of `<fieldset>` and `<legend>` tags
......................................................................


FieldsetLayout: Make use of `<fieldset>` and `<legend>` tags

Providing `<fieldset>` and `<legend>` tags in FieldsetLayout to
ensure best experience for users of assistive technology.
Also moving `<legend>` to first child of `<fieldset>` element as defined
in HTML5 spec and ensuring cross-browser consistent layout by following
https://github.com/necolas/normalize.css and
https://thatemil.com/blog/2015/01/03/reset-your-fieldset/

Bug: T131823
Change-Id: Ie4655eedf9548199a8e7bb87fbac9df770d5beac
---
M php/layouts/FieldsetLayout.php
M src/layouts/FieldsetLayout.js
M src/styles/layouts/FieldsetLayout.less
M src/themes/apex/layouts.less
M src/themes/mediawiki/layouts.less
5 files changed, 28 insertions(+), 11 deletions(-)

Approvals:
  Bartosz Dziewoński: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/php/layouts/FieldsetLayout.php b/php/layouts/FieldsetLayout.php
index 43e7745..3b6495d 100644
--- a/php/layouts/FieldsetLayout.php
+++ b/php/layouts/FieldsetLayout.php
@@ -12,6 +12,10 @@
        use LabelElement;
        use GroupElement;
 
+       /* Static Properties */
+
+       public static $tagName = 'fieldset';
+
        /**
         * @param array $config Configuration options
         * @param FieldLayout[] $config['items'] Items to add
@@ -22,13 +26,15 @@
 
                // Traits
                $this->initializeIconElement( $config );
-               $this->initializeLabelElement( $config );
+               $this->initializeLabelElement( array_merge( $config, [
+                       'labelElement' => new Tag( 'legend' )
+               ] ) );
                $this->initializeGroupElement( $config );
 
                // Initialization
                $this
                        ->addClasses( [ 'oo-ui-fieldsetLayout' ] )
-                       ->prependContent( $this->icon, $this->label, 
$this->group );
+                       ->prependContent( $this->label, $this->icon, 
$this->group );
                if ( isset( $config['items'] ) ) {
                        $this->addItems( $config['items'] );
                }
diff --git a/src/layouts/FieldsetLayout.js b/src/layouts/FieldsetLayout.js
index d3f16ac..76200fe 100644
--- a/src/layouts/FieldsetLayout.js
+++ b/src/layouts/FieldsetLayout.js
@@ -49,7 +49,7 @@
 
        // Mixin constructors
        OO.ui.mixin.IconElement.call( this, config );
-       OO.ui.mixin.LabelElement.call( this, config );
+       OO.ui.mixin.LabelElement.call( this, $.extend( {}, config, { $label: $( 
'<legend>' ) } ) );
        OO.ui.mixin.GroupElement.call( this, config );
 
        if ( config.help ) {
@@ -72,7 +72,7 @@
        // Initialization
        this.$element
                .addClass( 'oo-ui-fieldsetLayout' )
-               .prepend( this.$help, this.$icon, this.$label, this.$group );
+               .prepend( this.$label, this.$help, this.$icon, this.$group );
        if ( Array.isArray( config.items ) ) {
                this.addItems( config.items );
        }
@@ -84,3 +84,7 @@
 OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.IconElement );
 OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.LabelElement );
 OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.mixin.GroupElement );
+
+/* Static Properties */
+
+OO.ui.FieldsetLayout.static.tagName = 'fieldset';
diff --git a/src/styles/layouts/FieldsetLayout.less 
b/src/styles/layouts/FieldsetLayout.less
index 62ceb11..f4753c4 100644
--- a/src/styles/layouts/FieldsetLayout.less
+++ b/src/styles/layouts/FieldsetLayout.less
@@ -2,6 +2,14 @@
 
 .oo-ui-fieldsetLayout {
        position: relative;
+       min-width: 0; // Prevent overflowing content in WebKit/Blink 
(responsive layouts)
+       margin: 0;
+       border: 0;
+       padding: 0.01px 0 0 0; // Prevent WebKit/Safari from collapsing 
`margin`s
+
+       body:not( :-moz-handler-blocked ) & {
+               display: table-cell; // Prevent overflowing content in Firefox 
(responsive layouts)
+       }
 
        &.oo-ui-iconElement > .oo-ui-iconElement-icon {
                display: block;
@@ -9,7 +17,12 @@
        }
 
        &.oo-ui-labelElement > .oo-ui-labelElement-label {
-               display: inline-block;
+               color: inherit; // Correct the color inheritance from 
`fieldset` elements in IE
+               display: table; // Correct the text wrapping in Edge and IE
+               box-sizing: border-box; // Correct the text wrapping in Edge 
and IE
+               max-width: 100%; // Correct the text wrapping in Edge and IE
+               padding: 0;
+               white-space: normal; // Correct the text wrapping in Edge and IE
        }
 
        > .oo-ui-fieldsetLayout-help {
diff --git a/src/themes/apex/layouts.less b/src/themes/apex/layouts.less
index 0dbd8b5..e2902f8 100644
--- a/src/themes/apex/layouts.less
+++ b/src/themes/apex/layouts.less
@@ -102,9 +102,6 @@
 }
 
 .theme-oo-ui-fieldsetLayout () {
-       margin: 0;
-       padding: 0;
-       border: 0;
 
        + .oo-ui-fieldsetLayout,
        + .oo-ui-formLayout {
diff --git a/src/themes/mediawiki/layouts.less 
b/src/themes/mediawiki/layouts.less
index 15ffe06..0523ed7 100644
--- a/src/themes/mediawiki/layouts.less
+++ b/src/themes/mediawiki/layouts.less
@@ -107,9 +107,6 @@
 }
 
 .theme-oo-ui-fieldsetLayout () {
-       margin: 0;
-       padding: 0;
-       border: 0;
 
        + .oo-ui-fieldsetLayout,
        + .oo-ui-formLayout {

-- 
To view, visit https://gerrit.wikimedia.org/r/304409
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie4655eedf9548199a8e7bb87fbac9df770d5beac
Gerrit-PatchSet: 4
Gerrit-Project: oojs/ui
Gerrit-Branch: master
Gerrit-Owner: VolkerE <volke...@wikimedia.org>
Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Esanders <esand...@wikimedia.org>
Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org>
Gerrit-Reviewer: Prtksxna <psax...@wikimedia.org>
Gerrit-Reviewer: TheDJ <hartman.w...@gmail.com>
Gerrit-Reviewer: VolkerE <volke...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to