diff --git a/src/components/CopyButton.tsx b/src/components/CopyButton.tsx index d87615b..08f3f49 100644 --- a/src/components/CopyButton.tsx +++ b/src/components/CopyButton.tsx @@ -65,6 +65,9 @@ const CopyButton = ({ onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} className="hover:before:bg-muted active:before:bg-secondary relative z-0 -mx-1 -my-1 flex items-center gap-1 px-1 py-1 transition-colors before:absolute before:inset-0 before:-z-10 before:rounded-lg before:duration-200 active:before:scale-x-[0.98] active:before:scale-y-[0.94]" + id="copy-button" + type="button" + aria-label="Copy" > {buttonText && {buttonText}} diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 246e99b..02e20bf 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -15,22 +15,40 @@ import { Button } from './ui/button'; function SocialLinksItems({ className }: { className?: string }) { const socialLinks = [ - { href: 'https://twitter.com/iEx_ec', icon: }, - { href: 'https://discord.gg/pbt9m98wnU', icon: }, - { href: 'https://t.me/iexec_rlc_official', icon: }, + { + href: 'https://twitter.com/iEx_ec', + icon: , + ariaLabel: 'Twitter', + }, + { + href: 'https://discord.gg/pbt9m98wnU', + icon: , + ariaLabel: 'Discord', + }, + { + href: 'https://t.me/iexec_rlc_official', + icon: , + ariaLabel: 'Telegram', + }, { href: 'https://www.youtube.com/channel/UCwWxZWvKVHn3CXnmDooLWtA', icon: , + ariaLabel: 'YouTube', }, { href: 'https://www.linkedin.com/company/iex.ec/', icon: , + ariaLabel: 'LinkedIn', + }, + { + href: 'https://medium.com/iex-ec', + icon: , + ariaLabel: 'Medium', }, - { href: 'https://medium.com/iex-ec', icon: }, ]; return (
- {socialLinks.map(({ href, icon }, idx) => ( + {socialLinks.map(({ href, icon, ariaLabel }, idx) => ( diff --git a/src/modules/search/SearcherBar.tsx b/src/modules/search/SearcherBar.tsx index 6cd8623..d2bb4d5 100644 --- a/src/modules/search/SearcherBar.tsx +++ b/src/modules/search/SearcherBar.tsx @@ -154,6 +154,10 @@ export function SearcherBar({ onChange={(e) => setInputValue(e.target.value)} onKeyDown={handleKeyDown} disabled={isPending} + type="search" + role="searchbox" + aria-label="Search for addresses, deal IDs, task IDs, or transaction hashes" + aria-describedby={localError || error ? 'search-error' : undefined} className={cn( 'bg-muted border-secondary w-full rounded-2xl py-5.5 pl-12 sm:py-6.5', isConnected && 'sm:pr-32', @@ -164,7 +168,12 @@ export function SearcherBar({ placeholder="Search address, deal id, task id, transaction hash..." /> {(localError || error) && ( -

+

)} @@ -174,14 +183,20 @@ export function SearcherBar({ />
-
-
-