@@ -154,12 +154,18 @@ function Search({ chains, tokens, small, environment, lanes }: SearchProps) {
154154 ensureWorker ( )
155155 } }
156156 onBlur = { ( ) => setIsActive ( false ) }
157+ aria-label = "Search networks, tokens, and lanes"
158+ aria-describedby = { openSearchMenu ? "search-results" : undefined }
157159 />
158160 { openSearchMenu && (
159161 < div
162+ id = "search-results"
160163 className = { clsx ( "ccip-hero__search-results" , {
161164 "ccip-hero__search-results--small" : small || false ,
162165 } ) }
166+ role = "region"
167+ aria-live = "polite"
168+ aria-label = "Search results"
163169 >
164170 { networksResults . length === 0 && tokensResults . length === 0 && (
165171 < span className = "ccip-hero__search-results__no-result" > No results found</ span >
@@ -228,8 +234,8 @@ function Search({ chains, tokens, small, environment, lanes }: SearchProps) {
228234 < ul aria-label = "Lanes" >
229235 { lanesResults . map ( ( lane ) => (
230236 < li key = { lane . sourceNetwork . name + lane . destinationNetwork . key } >
231- < a
232- role = "button"
237+ < button
238+ type = "button"
233239 onClick = { ( ) =>
234240 drawerContentStore . set ( ( ) => (
235241 < LaneDrawer
@@ -244,6 +250,7 @@ function Search({ chains, tokens, small, environment, lanes }: SearchProps) {
244250 />
245251 ) )
246252 }
253+ aria-label = { `View lane from ${ lane . sourceNetwork . name } to ${ lane . destinationNetwork . name } ` }
247254 >
248255 < div className = "ccip-hero__search-results__lane-images" >
249256 < img
@@ -272,7 +279,7 @@ function Search({ chains, tokens, small, environment, lanes }: SearchProps) {
272279 : "token" }
273280 </ span >
274281 ) }
275- </ a >
282+ </ button >
276283 </ li >
277284 ) ) }
278285 </ ul >
0 commit comments