@@ -122,14 +122,15 @@ suite('relative-time', function () {
122122 assert . notEqual ( nextDisplay , display )
123123 } )
124124
125- test ( 'all observedAttributes have getters' , async ( ) => {
125+ test ( 'all observedAttributes have getters) ' , async ( ) => {
126126 const members = [
127127 ...Object . getOwnPropertyNames ( RelativeTimeElement . prototype ) . map ( n =>
128128 n . replace ( / ( [ A - Z ] ) / g, c => `-${ c . toLowerCase ( ) } ` ) ,
129129 ) ,
130130 ...Object . getOwnPropertyNames ( HTMLElement . prototype ) ,
131131 ]
132132 const observedAttributes = new Set ( RelativeTimeElement . observedAttributes )
133+ observedAttributes . delete ( 'aria-hidden' ) // Standard HTML attribute, no need for custom getter
133134 for ( const member of members ) observedAttributes . delete ( member )
134135 assert . empty ( [ ...observedAttributes ] , 'observedAttributes that arent class members' )
135136 } )
@@ -1872,6 +1873,40 @@ suite('relative-time', function () {
18721873 }
18731874 } )
18741875
1876+ suite ( '[aria-hidden]' , async ( ) => {
1877+ test ( '[aria-hidden="true"] applies to shadow root' , async ( ) => {
1878+ const now = new Date ( ) . toISOString ( )
1879+ const time = document . createElement ( 'relative-time' )
1880+ time . setAttribute ( 'datetime' , now )
1881+ time . setAttribute ( 'aria-hidden' , 'true' )
1882+ await Promise . resolve ( )
1883+
1884+ const span = time . shadowRoot . querySelector ( 'span' )
1885+ assert . equal ( span . getAttribute ( 'aria-hidden' ) , 'true' )
1886+ } )
1887+
1888+ test ( '[aria-hidden="false"] applies to shadow root' , async ( ) => {
1889+ const now = new Date ( ) . toISOString ( )
1890+ const time = document . createElement ( 'relative-time' )
1891+ time . setAttribute ( 'datetime' , now )
1892+ time . setAttribute ( 'aria-hidden' , 'false' )
1893+ await Promise . resolve ( )
1894+
1895+ assert . isNull ( time . querySelector ( '[aria-hidden]' ) , 'Expected no aria-hidden to be present' )
1896+ assert . isNull ( time . querySelector ( 'span' ) , 'Expected no span to be present' )
1897+ } )
1898+
1899+ test ( 'no aria-hidden applies to shadow root' , async ( ) => {
1900+ const now = new Date ( ) . toISOString ( )
1901+ const time = document . createElement ( 'relative-time' )
1902+ time . setAttribute ( 'datetime' , now )
1903+ await Promise . resolve ( )
1904+
1905+ assert . isNull ( time . querySelector ( '[aria-hidden]' ) , 'Expected no aria-hidden to be present' )
1906+ assert . isNull ( time . querySelector ( 'span' ) , 'Expected no span to be present' )
1907+ } )
1908+ } )
1909+
18751910 suite ( 'legacy formats' , function ( ) {
18761911 const referenceDate = '2022-10-24T14:46:00.000Z'
18771912 const tests = new Set ( [
0 commit comments