@@ -28,6 +28,7 @@ import { PopoverContainer } from "carbon-components-angular/popover";
28
28
class="cds--definition-term"
29
29
[attr.aria-controls]="id"
30
30
[attr.aria-expanded]="isOpen"
31
+ [attr.aria-describedby]="isOpen ? id : null"
31
32
(blur)="onBlur($event)"
32
33
(click)="onClick($event)"
33
34
type="button">
@@ -37,9 +38,9 @@ import { PopoverContainer } from "carbon-components-angular/popover";
37
38
*ngIf="description"
38
39
class="cds--popover"
39
40
[id]="id"
40
- [attr.aria-hidden]="isOpen"
41
+ [attr.aria-hidden]="! isOpen"
41
42
role="tooltip">
42
- <span class="cds--popover-content cds--definition-tooltip">
43
+ <span class="cds--popover-content cds--definition-tooltip" aria-live="polite" >
43
44
<ng-container *ngIf="!isTemplate(description)">{{description}}</ng-container>
44
45
<ng-template *ngIf="isTemplate(description)" [ngTemplateOutlet]="description" [ngTemplateOutletContext]="{ $implicit: templateContext }"></ng-template>
45
46
<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>
@@ -62,6 +63,8 @@ export class TooltipDefinition extends PopoverContainer {
62
63
*/
63
64
@Input ( ) templateContext : any ;
64
65
66
+ @Input ( ) openOnHover = false ;
67
+
65
68
constructor (
66
69
protected elementRef : ElementRef ,
67
70
protected ngZone : NgZone ,
@@ -94,6 +97,18 @@ export class TooltipDefinition extends PopoverContainer {
94
97
this . handleChange ( false , event ) ;
95
98
}
96
99
100
+ @HostListener ( "mouseenter" , [ "$event" ] )
101
+ mouseenter ( event ) {
102
+ if ( this . openOnHover ) {
103
+ this . handleChange ( true , event ) ;
104
+ }
105
+ }
106
+
107
+ @HostListener ( "focusin" , [ "$event" ] )
108
+ onFocus ( event ) {
109
+ this . handleChange ( true , event ) ;
110
+ }
111
+
97
112
public isTemplate ( value ) {
98
113
return value instanceof TemplateRef ;
99
114
}
0 commit comments