@@ -28,6 +28,7 @@ import { PopoverContainer } from "carbon-components-angular/popover";
2828 class="cds--definition-term"
2929 [attr.aria-controls]="id"
3030 [attr.aria-expanded]="isOpen"
31+ [attr.aria-describedby]="isOpen ? id : null"
3132 (blur)="onBlur($event)"
3233 (click)="onClick($event)"
3334 type="button">
@@ -37,9 +38,9 @@ import { PopoverContainer } from "carbon-components-angular/popover";
3738 *ngIf="description"
3839 class="cds--popover"
3940 [id]="id"
40- [attr.aria-hidden]="isOpen"
41+ [attr.aria-hidden]="! isOpen"
4142 role="tooltip">
42- <span class="cds--popover-content cds--definition-tooltip">
43+ <span class="cds--popover-content cds--definition-tooltip" aria-live="polite" >
4344 <ng-container *ngIf="!isTemplate(description)">{{description}}</ng-container>
4445 <ng-template *ngIf="isTemplate(description)" [ngTemplateOutlet]="description" [ngTemplateOutletContext]="{ $implicit: templateContext }"></ng-template>
4546 <span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>
@@ -62,6 +63,8 @@ export class TooltipDefinition extends PopoverContainer {
6263 */
6364 @Input ( ) templateContext : any ;
6465
66+ @Input ( ) openOnHover = false ;
67+
6568 constructor (
6669 protected elementRef : ElementRef ,
6770 protected ngZone : NgZone ,
@@ -94,6 +97,18 @@ export class TooltipDefinition extends PopoverContainer {
9497 this . handleChange ( false , event ) ;
9598 }
9699
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+
97112 public isTemplate ( value ) {
98113 return value instanceof TemplateRef ;
99114 }
0 commit comments