Files
livedash-node/app/layout.tsx
Kaj Kowalski 9eb86b0502 feat: comprehensive accessibility improvements
- Add skip navigation link for keyboard users
- Implement proper ARIA labels and roles throughout interface
- Add semantic HTML structure with headings and landmarks
- Enhance form accessibility with help text and fieldsets
- Improve screen reader support with live regions
- Add proper focus management for sidebar toggle
- Include descriptive labels for all interactive elements
- Ensure WCAG compliance for navigation and forms
2025-06-28 05:49:56 +02:00

38 lines
1.2 KiB
TypeScript

// Main app layout with basic global style
import "./globals.css";
import { ReactNode } from "react";
import { Providers } from "./providers";
import { Toaster } from "@/components/ui/sonner";
export const metadata = {
title: "LiveDash-Node",
description:
"Multi-tenant dashboard system for tracking chat session metrics",
icons: {
icon: [
{ url: "/favicon.ico", sizes: "32x32", type: "image/x-icon" },
{ url: "/favicon.svg", type: "image/svg+xml" },
],
apple: "/icon-192.svg",
},
manifest: "/manifest.json",
};
export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html lang="en" suppressHydrationWarning>
<body className="bg-background text-foreground min-h-screen font-sans antialiased">
{/* Skip navigation link for keyboard users */}
<a
href="#main-content"
className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-primary focus:text-primary-foreground focus:rounded focus:outline-none focus:ring-2 focus:ring-ring"
>
Skip to main content
</a>
<Providers>{children}</Providers>
<Toaster />
</body>
</html>
);
}