From: jenkins-bot Date: Tue, 1 Aug 2017 22:13:19 +0000 (+0000) Subject: Merge "Avoid duplicate accesskey hints on OOUI widgets" X-Git-Tag: 1.31.0-rc.0~2511 X-Git-Url: http://git.cyclocoop.org/%7B%7B%20url_for%28%27admin_vote_del%27%2C%20idvote=vote.voteid%29%20%7D%7D?a=commitdiff_plain;h=af686bef4edacd6d9c841081a7aa1045b558cac9;hp=d8e7a44ab358320d20b79018b8cb43f446ebbd98;p=lhc%2Fweb%2Fwiklou.git Merge "Avoid duplicate accesskey hints on OOUI widgets" --- diff --git a/includes/EditPage.php b/includes/EditPage.php index 229a36a26e..fc770068f5 100644 --- a/includes/EditPage.php +++ b/includes/EditPage.php @@ -3076,7 +3076,7 @@ class EditPage { 'tabindex' => 1, 'size' => 60, 'spellcheck' => 'true', - ] + Linker::tooltipAndAccesskeyAttribs( 'summary' ); + ]; } /** @@ -3097,6 +3097,7 @@ class EditPage { $inputAttrs = null, $spanLabelAttrs = null ) { $inputAttrs = $this->getSummaryInputAttributes( $inputAttrs ); + $inputAttrs += Linker::tooltipAndAccesskeyAttribs( 'summary' ); $spanLabelAttrs = ( is_array( $spanLabelAttrs ) ? $spanLabelAttrs : [] ) + [ 'class' => $this->missingSummary ? 'mw-summarymissed' : 'mw-summary', @@ -3132,6 +3133,10 @@ class EditPage { $inputAttrs = OOUI\Element::configFromHtmlAttributes( $this->getSummaryInputAttributes( $inputAttrs ) ); + $inputAttrs += [ + 'title' => Linker::titleAttrib( 'summary' ), + 'accessKey' => Linker::accesskey( 'summary' ), + ]; // For compatibility with old scripts and extensions, we want the legacy 'id' on the `` $inputAttrs['inputId'] = $inputAttrs['id']; @@ -4277,7 +4282,7 @@ HTML $accesskey = null; if ( isset( $options['tooltip'] ) ) { $accesskey = $this->context->msg( "accesskey-{$options['tooltip']}" )->text(); - $title = Linker::titleAttrib( $options['tooltip'], 'withaccess' ); + $title = Linker::titleAttrib( $options['tooltip'] ); } if ( isset( $options['title-message'] ) ) { $title = $this->context->msg( $options['title-message'] )->text(); @@ -4355,8 +4360,7 @@ HTML $attribs = [ 'name' => 'wpSave', 'tabindex' => ++$tabindex, - ] + Linker::tooltipAndAccesskeyAttribs( 'save' ); - + ]; if ( $this->oouiEnabled ) { $saveConfig = OOUI\Element::configFromHtmlAttributes( $attribs ); $buttons['save'] = new OOUI\ButtonInputWidget( [ @@ -4368,11 +4372,13 @@ HTML 'label' => $buttonLabel, 'infusable' => true, 'type' => 'submit', + 'title' => Linker::titleAttrib( 'save' ), + 'accessKey' => Linker::accesskey( 'save' ), ] + $saveConfig ); } else { $buttons['save'] = Html::submitButton( $buttonLabel, - $attribs + [ 'id' => 'wpSave' ], + $attribs + Linker::tooltipAndAccesskeyAttribs( 'save' ) + [ 'id' => 'wpSave' ], [ 'mw-ui-progressive' ] ); } @@ -4380,7 +4386,7 @@ HTML $attribs = [ 'name' => 'wpPreview', 'tabindex' => ++$tabindex, - ] + Linker::tooltipAndAccesskeyAttribs( 'preview' ); + ]; if ( $this->oouiEnabled ) { $previewConfig = OOUI\Element::configFromHtmlAttributes( $attribs ); $buttons['preview'] = new OOUI\ButtonInputWidget( [ @@ -4390,18 +4396,20 @@ HTML 'useInputTag' => true, 'label' => $this->context->msg( 'showpreview' )->text(), 'infusable' => true, - 'type' => 'submit' + 'type' => 'submit', + 'title' => Linker::titleAttrib( 'preview' ), + 'accessKey' => Linker::accesskey( 'preview' ), ] + $previewConfig ); } else { $buttons['preview'] = Html::submitButton( $this->context->msg( 'showpreview' )->text(), - $attribs + [ 'id' => 'wpPreview' ] + $attribs + Linker::tooltipAndAccesskeyAttribs( 'preview' ) + [ 'id' => 'wpPreview' ] ); } $attribs = [ 'name' => 'wpDiff', 'tabindex' => ++$tabindex, - ] + Linker::tooltipAndAccesskeyAttribs( 'diff' ); + ]; if ( $this->oouiEnabled ) { $diffConfig = OOUI\Element::configFromHtmlAttributes( $attribs ); $buttons['diff'] = new OOUI\ButtonInputWidget( [ @@ -4412,11 +4420,13 @@ HTML 'label' => $this->context->msg( 'showdiff' )->text(), 'infusable' => true, 'type' => 'submit', + 'title' => Linker::titleAttrib( 'diff' ), + 'accessKey' => Linker::accesskey( 'diff' ), ] + $diffConfig ); } else { $buttons['diff'] = Html::submitButton( $this->context->msg( 'showdiff' )->text(), - $attribs + [ 'id' => 'wpDiff' ] + $attribs + Linker::tooltipAndAccesskeyAttribs( 'diff' ) + [ 'id' => 'wpDiff' ] ); } diff --git a/includes/htmlform/HTMLFormField.php b/includes/htmlform/HTMLFormField.php index 83a80233f9..7cb83e21cd 100644 --- a/includes/htmlform/HTMLFormField.php +++ b/includes/htmlform/HTMLFormField.php @@ -976,7 +976,7 @@ abstract class HTMLFormField { } /** - * Returns the attributes required for the tooltip and accesskey. + * Returns the attributes required for the tooltip and accesskey, for Html::element() etc. * * @return array Attributes */ @@ -988,6 +988,22 @@ abstract class HTMLFormField { return Linker::tooltipAndAccesskeyAttribs( $this->mParams['tooltip'] ); } + /** + * Returns the attributes required for the tooltip and accesskey, for OOUI widgets' config. + * + * @return array Attributes + */ + public function getTooltipAndAccessKeyOOUI() { + if ( empty( $this->mParams['tooltip'] ) ) { + return []; + } + + return [ + 'title' => Linker::titleAttrib( $this->mParams['tooltip'] ), + 'accessKey' => Linker::accesskey( $this->mParams['tooltip'] ), + ]; + } + /** * Returns the given attributes from the parameters * diff --git a/includes/htmlform/OOUIHTMLForm.php b/includes/htmlform/OOUIHTMLForm.php index ed99802994..9dd37b31ee 100644 --- a/includes/htmlform/OOUIHTMLForm.php +++ b/includes/htmlform/OOUIHTMLForm.php @@ -66,7 +66,10 @@ class OOUIHTMLForm extends HTMLForm { } if ( isset( $this->mSubmitTooltip ) ) { - $attribs += Linker::tooltipAndAccesskeyAttribs( $this->mSubmitTooltip ); + $attribs += [ + 'title' => Linker::titleAttrib( $this->mSubmitTooltip ), + 'accessKey' => Linker::accesskey( $this->mSubmitTooltip ), + ]; } $attribs['classes'] = [ 'mw-htmlform-submit' ]; diff --git a/includes/htmlform/fields/HTMLCheckField.php b/includes/htmlform/fields/HTMLCheckField.php index b080e183ff..9a956fbf1e 100644 --- a/includes/htmlform/fields/HTMLCheckField.php +++ b/includes/htmlform/fields/HTMLCheckField.php @@ -52,7 +52,7 @@ class HTMLCheckField extends HTMLFormField { $value = !$value; } - $attr = $this->getTooltipAndAccessKey(); + $attr = $this->getTooltipAndAccessKeyOOUI(); $attr['id'] = $this->mID; $attr['name'] = $this->mName; diff --git a/includes/htmlform/fields/HTMLMultiSelectField.php b/includes/htmlform/fields/HTMLMultiSelectField.php index 2b6e0665d5..0d5eeba92c 100644 --- a/includes/htmlform/fields/HTMLMultiSelectField.php +++ b/includes/htmlform/fields/HTMLMultiSelectField.php @@ -142,7 +142,7 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable public function getInputOOUI( $value ) { $this->mParent->getOutput()->addModules( 'oojs-ui-widgets' ); - $attr = $this->getTooltipAndAccessKey(); + $attr = []; $attr['id'] = $this->mID; $attr['name'] = "{$this->mName}[]"; diff --git a/includes/htmlform/fields/HTMLTextAreaField.php b/includes/htmlform/fields/HTMLTextAreaField.php index 82ec3bf201..480c5bb926 100644 --- a/includes/htmlform/fields/HTMLTextAreaField.php +++ b/includes/htmlform/fields/HTMLTextAreaField.php @@ -71,7 +71,7 @@ class HTMLTextAreaField extends HTMLFormField { throw new Exception( "OOUIHTMLForm does not support the 'cols' parameter for textareas" ); } - $attribs = $this->getTooltipAndAccessKey(); + $attribs = $this->getTooltipAndAccessKeyOOUI(); if ( $this->mClass !== '' ) { $attribs['classes'] = [ $this->mClass ]; diff --git a/includes/htmlform/fields/HTMLTextField.php b/includes/htmlform/fields/HTMLTextField.php index b0b66cab9f..1c5a43ddad 100644 --- a/includes/htmlform/fields/HTMLTextField.php +++ b/includes/htmlform/fields/HTMLTextField.php @@ -140,7 +140,7 @@ class HTMLTextField extends HTMLFormField { $value = ''; } - $attribs = $this->getTooltipAndAccessKey(); + $attribs = $this->getTooltipAndAccessKeyOOUI(); if ( $this->mClass !== '' ) { $attribs['classes'] = [ $this->mClass ];