Fix accessibility issues with saved object finder (#13152) (#13372)

* Fix accessibility issues with saved object finder

and use new kui styles

* Dark theme-icy kuiTabs

* Refer to existing dark theme color variables.  Use dark theme hover link color.

* use button instead of div element so no need for kbn-accessible-click

* Add dark theme tab variety to ui framework site, lighten color of background tabs
This commit is contained in:
Stacey Gammon 2017-08-08 09:52:49 -04:00 committed by GitHub
parent c2b3c3c1de
commit fba5e66729
8 changed files with 89 additions and 32 deletions

View file

@ -4,24 +4,24 @@
>
<div class="kuiLocalDropdownTitle">Add Panels</div>
<ul class="nav nav-tabs">
<li ng-class="{active: mode == 'visualization'}">
<a
ng-click="mode='visualization'"
aria-label="List visualizations"
>
Visualization
</a>
</li>
<li ng-class="{active: mode == 'search'}">
<a
ng-click="mode='search'"
aria-label="List saved searches"
>
Saved Search
</a>
</li>
</ul>
<div class="kuiTabs">
<button
ng-class="{ 'kuiTab-isSelected': mode == 'visualization'}"
class="kuiTab"
ng-click="mode='visualization'"
aria-label="List visualizations"
>
Visualization
</button>
<button
ng-class="{ 'kuiTab-isSelected': mode == 'search' }"
class="kuiTab"
ng-click="mode='search'"
aria-label="List saved searches"
>
Saved Search
</button>
</div>
<div class="list-group-item list-group-item--noBorder" ng-switch-when="visualization">
<saved-object-finder

View file

@ -134,16 +134,6 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr
//key handler for the filter text box
self.filterKeyDown = function ($event) {
switch (keyMap[$event.keyCode]) {
case 'tab':
if (self.hitCount === 0) return;
self.selector.index = 0;
self.selector.enabled = true;
selectTopHit();
$event.preventDefault();
break;
case 'enter':
if (self.hitCount !== 1) return;

View file

@ -92,12 +92,16 @@
// /src/ui/public/styles/bootstrap/list-group.less
.list-group-item {
background-color: @list-group-bg;
border: 0 none transparent;
border: 1px solid @gray7;
&:nth-child(even) {
background-color: @gray4;
}
}
.list-group-item--noBorder {
border-top: 0;
}
a.list-group-item,
button.list-group-item {
color: @list-group-link-color;
@ -224,6 +228,14 @@
}
}
saved-object-finder, paginated-selectable-list {
ul.li-striped {
li {
border: none;
}
}
}
.cell-hover {
background-color: @table-cell-hover-bg;

View file

@ -1,4 +1,10 @@
$tabBackgroundColor: #FFF;
$tabHoverBackgroundColor: #F2F2F2;
// Dark theme colors
$tabColor--darkTheme: $globalTextColor--darkTheme;
$tabBackgroundColor--darkTheme: #333333;
$tabHoverBackgroundColor--darkTheme: $globalBackgroundColor--darkTheme;
$tabBorderColor--darkTheme: $globalBackgroundColor--darkTheme;
@import "tabs";

View file

@ -1,6 +1,10 @@
.kuiTabs {
display: flex;
border-bottom: $globalBorderThin;
@include darkTheme {
border-bottom: 1px solid $tabBorderColor--darkTheme;
}
}
@ -19,10 +23,15 @@
color: $globalSubduedTextColor;
background-color: $tabBackgroundColor; /* 1 */
border: 1px solid $globalBorderColor;
border-bottom-width: 1px;
border-radius: 0; /* 1 */
margin-bottom: -1px; /* 3 */
@include darkTheme {
color: $tabColor--darkTheme;
background-color: $tabBackgroundColor--darkTheme;
border-color: $tabBorderColor--darkTheme;
}
& + & {
border-left: none;
@ -44,16 +53,33 @@
z-index: 1;
color: $globalLinkColor;
border: 1px solid $globalSelectedBorderColor !important;
@include darkTheme {
color: $tabColor--darkTheme;
background-color: $tabBackgroundColor--darkTheme;
border-color: $tabBorderColor--darkTheme !important;
}
}
&:hover:not(.kuiTab-isSelected) {
color: $globalLinkHoverColor;
background-color: $tabHoverBackgroundColor;
@include darkTheme {
color: $globalLinkColor-isHover--darkTheme;
background-color: $tabHoverBackgroundColor--darkTheme;
}
}
&.kuiTab-isSelected {
cursor: default;
color: $globalFontColor;
border-bottom-color: $tabBackgroundColor;
@include darkTheme {
color: $tabColor--darkTheme;
background-color: $tabBackgroundColor--darkTheme;
border-bottom-color: $tabBackgroundColor--darkTheme;
}
}
}

View file

@ -2913,6 +2913,8 @@ main {
display: -ms-flexbox;
display: flex;
border-bottom: 1px solid #D9D9D9; }
.theme-dark .kuiTabs {
border-bottom: 1px solid #777777; }
/**
* 1. Override button styles (some of which are from Bootstrap).
@ -2933,11 +2935,14 @@ main {
background-color: #FFF;
/* 1 */
border: 1px solid #D9D9D9;
border-bottom-width: 1px;
border-radius: 0;
/* 1 */
margin-bottom: -1px;
/* 3 */ }
.theme-dark .kuiTab {
color: #cecece;
background-color: #333333;
border-color: #777777; }
.kuiTab + .kuiTab {
border-left: none; }
.kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
@ -2955,13 +2960,24 @@ main {
z-index: 1;
color: #0079a5;
border: 1px solid #0079a5 !important; }
.theme-dark .kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
color: #cecece;
background-color: #333333;
border-color: #777777 !important; }
.kuiTab:hover:not(.kuiTab-isSelected) {
color: #006E8A;
background-color: #F2F2F2; }
.theme-dark .kuiTab:hover:not(.kuiTab-isSelected) {
color: #def2f6;
background-color: #777777; }
.kuiTab.kuiTab-isSelected {
cursor: default;
color: #191E23;
border-bottom-color: #FFF; }
.theme-dark .kuiTab.kuiTab-isSelected {
color: #cecece;
background-color: #333333;
border-bottom-color: #333333; }
/**
* 1. Allow container to deteermine font-size and line-height.

View file

@ -32,7 +32,7 @@ class KuiTabsExample extends React.Component {
this.setState({
selectedTabId: id,
});
}
};
renderTabs() {
return this.tabs.map((tab,index) => (

View file

@ -34,6 +34,13 @@ export default props => (
<GuideDemo>
<Tabs />
</GuideDemo>
<GuideText>
Dark themed tabs
</GuideText>
<GuideDemo isDarkTheme={true}>
<Tabs />
</GuideDemo>
</GuideSection>
</GuidePage>