From 44020e15b6421a74309776ce0b13f2720715407c Mon Sep 17 00:00:00 2001
From: patrickhlauke <redux@splintered.co.uk>
Date: Mon, 1 Jan 2018 23:06:26 +0000
Subject: [PATCH 1/3] Expand keyboard advice for tooltips, clarify what
 `manual` trigger does in table

---
 docs/4.0/components/tooltips.md | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/docs/4.0/components/tooltips.md b/docs/4.0/components/tooltips.md
index f04c65df3d..1ea337e0c0 100644
--- a/docs/4.0/components/tooltips.md
+++ b/docs/4.0/components/tooltips.md
@@ -94,6 +94,8 @@ The required markup for a tooltip is only a `data` attribute and `title` on the
 ##### Making tooltips work for keyboard and assistive technology users
 
 You should only add tooltips to HTML elements that are traditionally keyboard-focusable and interactive (such as links or form controls). Although arbitrary HTML elements (such as `<span>`s) can be made focusable by adding the `tabindex="0"` attribute, this will add potentially annoying and confusing tab stops on non-interactive elements for keyboard users. In addition, most assistive technologies currently do not announce the tooltip in this situation.
+
+Additionally, do not rely solely on `hover` as the trigger for your tooltip, as this will make your tooltips impossible to trigger for keyboard users.
 {% endcallout %}
 
 {% highlight html %}
@@ -111,11 +113,11 @@ You should only add tooltips to HTML elements that are traditionally keyboard-fo
 
 ### Disabled elements
 
-Elements with the `disabled` attribute aren't interactive, meaning users cannot hover or click them to trigger a tooltip (or popover). As a workaround, you'll want to trigger the tooltip from a wrapper `<div>` or `<span>` and override the `pointer-events` on the disabled element.
+Elements with the `disabled` attribute aren't interactive, meaning users cannot focus, hover or click them to trigger a tooltip (or popover). As a workaround, you'll want to trigger the tooltip from a wrapper `<div>` or `<span>`, ideally made keyboard-focusable using `tabindex="0"`, and override the `pointer-events` on the disabled element.
 
 <div class="tooltip-demo">
 {% example html %}
-<span class="d-inline-block" data-toggle="tooltip" title="Disabled tooltip">
+<span class="d-inline-block" tabindex="0" data-toggle="tooltip" title="Disabled tooltip">
   <button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
 </span>
 {% endexample %}
@@ -192,7 +194,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
         <p>Base HTML to use when creating the tooltip.</p>
         <p>The tooltip's <code>title</code> will be injected into the <code>.tooltip-inner</code>.</p>
         <p><code>.arrow</code> will become the tooltip's arrow.</p>
-        <p>The outermost wrapper element should have the <code>.tooltip</code> class.</p>
+        <p>The outermost wrapper element should have the <code>.tooltip</code> class, as well as a <code>role="tooltip"</code>.</p>
       </td>
     </tr>
     <tr>
@@ -208,7 +210,11 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
       <td>trigger</td>
       <td>string</td>
       <td>'hover focus'</td>
-      <td>How tooltip is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.</td>
+      <td>
+        <p>How tooltip is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space.</p>
+        <p><code>'manual'</code> indicates that the tooltip will be triggered programmatically via the <code>.tooltip('show')</code>, <code>.tooltip('hide')</code> and <code>.tooltip('toggle')</code> methods; this value cannot be combined with any other trigger.</p>
+        <p><code>'hover'</code> on its own will result in tooltips that cannot be triggered via the keyboard, and should only be used if alternative methods for conveying the same information for keyboard users is present.</p>
+      </td>
     </tr>
     <tr>
       <td>offset</td>
-- 
GitLab


From 0313dba335b13c29b0655dee7ad15c80951d380e Mon Sep 17 00:00:00 2001
From: patrickhlauke <redux@splintered.co.uk>
Date: Tue, 2 Jan 2018 10:46:07 +0000
Subject: [PATCH 2/3] Oxford comma

---
 docs/4.0/components/tooltips.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/4.0/components/tooltips.md b/docs/4.0/components/tooltips.md
index 1ea337e0c0..1dd17de618 100644
--- a/docs/4.0/components/tooltips.md
+++ b/docs/4.0/components/tooltips.md
@@ -113,7 +113,7 @@ Additionally, do not rely solely on `hover` as the trigger for your tooltip, as
 
 ### Disabled elements
 
-Elements with the `disabled` attribute aren't interactive, meaning users cannot focus, hover or click them to trigger a tooltip (or popover). As a workaround, you'll want to trigger the tooltip from a wrapper `<div>` or `<span>`, ideally made keyboard-focusable using `tabindex="0"`, and override the `pointer-events` on the disabled element.
+Elements with the `disabled` attribute aren't interactive, meaning users cannot focus, hover, or click them to trigger a tooltip (or popover). As a workaround, you'll want to trigger the tooltip from a wrapper `<div>` or `<span>`, ideally made keyboard-focusable using `tabindex="0"`, and override the `pointer-events` on the disabled element.
 
 <div class="tooltip-demo">
 {% example html %}
-- 
GitLab


From 27e2ac0dfeb0b15f9749b072ec10b3d8f365241c Mon Sep 17 00:00:00 2001
From: patrickhlauke <redux@splintered.co.uk>
Date: Tue, 2 Jan 2018 10:47:26 +0000
Subject: [PATCH 3/3] More succinct wording

---
 docs/4.0/components/tooltips.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/4.0/components/tooltips.md b/docs/4.0/components/tooltips.md
index 1dd17de618..a055d95192 100644
--- a/docs/4.0/components/tooltips.md
+++ b/docs/4.0/components/tooltips.md
@@ -194,7 +194,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
         <p>Base HTML to use when creating the tooltip.</p>
         <p>The tooltip's <code>title</code> will be injected into the <code>.tooltip-inner</code>.</p>
         <p><code>.arrow</code> will become the tooltip's arrow.</p>
-        <p>The outermost wrapper element should have the <code>.tooltip</code> class, as well as a <code>role="tooltip"</code>.</p>
+        <p>The outermost wrapper element should have the <code>.tooltip</code> class and <code>role="tooltip"</code>.</p>
       </td>
     </tr>
     <tr>
-- 
GitLab