@@ -145,7 +145,8 @@ export class CtBottomSheet extends LitElement {
145145 border-top: 1px solid var(--bottom-sheet-border-color, #8181811c);
146146 }
147147
148- label {
148+ label,
149+ h2 {
149150 white-space: var(--arc-font-nowrap-white-space);
150151 overflow: var(--arc-font-nowrap-overflow);
151152 text-overflow: var(--arc-font-nowrap-text-overflow);
@@ -162,6 +163,7 @@ export class CtBottomSheet extends LitElement {
162163 flex-direction: row;
163164 align-items: center;
164165 padding: 0 24px 12px;
166+ margin: 0;
165167 }
166168
167169 [hidden] {
@@ -201,19 +203,21 @@ export class CtBottomSheet extends LitElement {
201203 /**
202204 * Removes padding from the element styles
203205 */
206+ @property ( { type : String , reflect : true } ) role = "dialog" ;
207+ @property ( { type : String , reflect : true , attribute : "aria-modal" } ) ariaModal = "true" ;
204208 @property ( { type : Boolean , reflect : true } ) noPadding = false ;
205209 opened : boolean ;
206210 sizingTarget ! : HTMLElement ;
207211 positionTarget ! : HTMLElement ;
208212
209213 render ( ) {
210214 const { label } = this ;
211- return html `< div class ="draggable "> </ div >
212- ${ label ? html `< label > ${ label } </ label > ` : "" }
215+ return html `< div class ="draggable " aria-hidden =" true " > </ div >
216+ ${ label ? html `< h2 id =" sheet-title " > ${ label } </ h2 > ` : "" }
213217 < div class ="scrollable ">
214218 < slot > </ slot >
215219 </ div >
216- < button @click =${ this . close } > ${ this . closelabel } </ button > ` ;
220+ < button type =" button " @click =${ this . close } > ${ this . closelabel } </ button > ` ;
217221 }
218222
219223 open ( ) { }
@@ -240,6 +244,7 @@ export class CtBottomSheet extends LitElement {
240244
241245 connectedCallback ( ) {
242246 super . connectedCallback ( ) ;
247+ this . setAttribute ( "aria-hidden" , "true" ) ;
243248 this . addEventListener ( "transitionend" , this . __onTransitionEnd ) ;
244249 }
245250
@@ -250,6 +255,16 @@ export class CtBottomSheet extends LitElement {
250255
251256 firstUpdated ( ) {
252257 this . sizingTarget = this . scrollTarget ;
258+ this . _syncSheetName ( ) ;
259+ }
260+
261+ protected updated ( ) : void {
262+ this . _syncSheetName ( ) ;
263+ }
264+
265+ private _syncSheetName ( ) {
266+ const name = this . label . trim ( ) || "Bottom sheet" ;
267+ if ( this . getAttribute ( "aria-label" ) !== name ) this . setAttribute ( "aria-label" , name ) ;
253268 }
254269
255270 _openedChanged ( opened : boolean ) {
@@ -258,15 +273,6 @@ export class CtBottomSheet extends LitElement {
258273 currentSheet . close ( ) ;
259274 }
260275 currentSheet = this ;
261- this . dispatchEvent (
262- new CustomEvent ( "iron-announce" , {
263- bubbles : true ,
264- composed : true ,
265- detail : {
266- text : "Menu opened"
267- }
268- } )
269- ) ;
270276 } else if ( currentSheet === this ) {
271277 currentSheet = null ;
272278 }
@@ -278,6 +284,7 @@ export class CtBottomSheet extends LitElement {
278284 _renderOpened ( ) {
279285 const node = this ;
280286 node . classList . add ( "bottom-sheet-open" ) ;
287+ node . removeAttribute ( "aria-hidden" ) ;
281288 }
282289
283290 /**
@@ -286,6 +293,7 @@ export class CtBottomSheet extends LitElement {
286293 _renderClosed ( ) {
287294 const node = this ;
288295 node . classList . remove ( "bottom-sheet-open" ) ;
296+ node . setAttribute ( "aria-hidden" , "true" ) ;
289297 }
290298
291299 /**
0 commit comments