Loading...
Loading...
Compare original and translation side by side
$ARGUMENTS$ARGUMENTS<div><span><nav><main><aside><header><footer><section><article><button><a><ul><ol><table>h1h2h3<img><svg>// Bad
<div onClick={handleClick}>Submit</div>
// Good
<button onClick={handleClick}>Submit</button><div><span><nav><main><aside><header><footer><section><article><button><a><ul><ol><table>h1h2h3<img><svg>// Bad
<div onClick={handleClick}>Submit</div>
// Good
<button onClick={handleClick}>Submit</button>aria-labelaria-labelledbyaria-describedbyaria-expandedaria-haspopuparia-livearia-hidden="true"// 토스트 알림
<div role="alert" aria-live="polite">
{message}
</div>
// 아이콘 버튼
<button aria-label="Close dialog">
<XIcon aria-hidden="true" />
</button>aria-labelaria-labelledbyaria-describedbyaria-expandedaria-haspopuparia-livearia-hidden="true"// 提示通知
<div role="alert" aria-live="polite">
{message}
</div>
// 图标按钮
<button aria-label="Close dialog">
<XIcon aria-hidden="true" />
</button>EnterSpaceEscapetabIndex// 모달 포커스 트랩 (shadcn/ui Dialog는 자동 지원)
<Dialog>
<DialogContent>
{/* Tab 키가 이 안에서만 순환 */}
</DialogContent>
</Dialog>EnterSpaceEscapetabIndex// 模态框焦点陷阱(shadcn/ui Dialog自动支持)
<Dialog>
<DialogContent>
{/* Tab键仅在此区域内循环 */}
</DialogContent>
</Dialog>focus-visible// Bad — 색상만으로 상태 표현
<span className={isError ? "text-red-500" : "text-green-500"}>
{status}
</span>
// Good — 아이콘 + 텍스트 병행
<span className={isError ? "text-red-500" : "text-green-500"}>
{isError ? <AlertIcon aria-hidden="true" /> : <CheckIcon aria-hidden="true" />}
{isError ? "Error: " : "Success: "}{status}
</span>focus-visible// Bad — 仅用颜色表示状态
<span className={isError ? "text-red-500" : "text-green-500"}>
{status}
</span>
// Good — 图标+文本搭配
<span className={isError ? "text-red-500" : "text-green-500"}>
{isError ? <AlertIcon aria-hidden="true" /> : <CheckIcon aria-hidden="true" />}
{isError ? "错误: " : "成功: "}{status}
</span><label>htmlForaria-describedbyaria-required="true"requiredautoComplete// shadcn/ui Form은 자동으로 접근성 처리
<FormField
control={form.control}
name="email"
render={({ field }) => (
<FormItem>
<FormLabel>Email</FormLabel>
<FormControl>
<Input {...field} autoComplete="email" />
</FormControl>
<FormDescription>We'll never share your email.</FormDescription>
<FormMessage /> {/* aria-describedby 자동 연결 */}
</FormItem>
)}
/><label>htmlForaria-describedbyaria-required="true"requiredautoComplete// shadcn/ui Form自动处理可访问性
<FormField
control={form.control}
name="email"
render={({ field }) => (
<FormItem>
<FormLabel>邮箱</FormLabel>
<FormControl>
<Input {...field} autoComplete="email" />
</FormControl>
<FormDescription>我们绝不会分享您的邮箱。</FormDescription>
<FormMessage /> {/* 自动关联aria-describedby */}
</FormItem>
)}
/>altalt=""aria-hidden="true"<Image>alt// 정보 전달 이미지
<Image src="/chart.png" alt="2024년 매출 추이: 1분기 100억, 2분기 150억" />
// 장식용 이미지
<Image src="/bg-pattern.png" alt="" aria-hidden="true" />altalt=""aria-hidden="true"<Image>alt// 传递信息的图片
<Image src="/chart.png" alt="2024年营收趋势:第一季度100亿,第二季度150亿" />
// 装饰性图片
<Image src="/bg-pattern.png" alt="" aria-hidden="true" />aria-busy="true"role="alert"aria-live="polite"aria-busy="true"role="alert"aria-live="polite"DialogDialogTitleDialogDescriptionDropdownMenuToastaria-liveTooltipTabsSheetDialogDialogTitleDialogDescriptionDropdownMenuToastaria-liveTooltipTabsSheetundefinedundefined파일:라인文件:行号undefinedundefined