Files
metabuilder/gameengine/conanfile.py
johndoe6345789 bb17f395fe feat: complete fakemui accessibility integration with data-testid and ARIA
Complete implementation of accessibility utilities across fakemui components:

**New Files**:
- src/utils/accessibility.ts - Core accessibility utilities (moved from legacy)
- src/utils/accessibility.module.scss - Accessibility SCSS styles
- src/utils/useAccessible.ts - React hooks for accessibility:
  * useAccessible() - Generate test IDs and ARIA attributes
  * useKeyboardNavigation() - Handle keyboard events
  * useFocusManagement() - Programmatic focus control
  * useLiveRegion() - Screen reader announcements
  * useFocusTrap() - Focus trapping for modals

**Component Updates**:
- Button.tsx - Added data-testid and ARIA support via useAccessible hook
- TextField.tsx - Added data-testid, aria-invalid, aria-describedby support

**Documentation**:
- docs/ACCESSIBILITY_INTEGRATION.md - Complete integration guide with examples

**Features**:
- 50+ preset test ID generators (form, canvas, settings, navigation, etc.)
- ARIA attribute patterns for buttons, toggles, dialogs, tabs, live regions
- Keyboard navigation helpers (Enter, Escape, Arrow keys, Tab)
- Accessibility validators (hasLabel, isKeyboardAccessible, etc.)
- Fully typed TypeScript with AccessibilityFeature, Component, Action types

All components now support reliable testing via data-testid and screen reader access via ARIA attributes.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-23 17:25:48 +00:00

69 lines
1.9 KiB
Python

from conan import ConanFile
from conan.tools.cmake import cmake_layout
class SDL3CppConan(ConanFile):
name = "sdl3cpp"
version = "0.1"
settings = "os", "arch", "compiler", "build_type"
options = {"build_app": [True, False]}
default_options = {
"build_app": True,
}
generators = "CMakeDeps", "VirtualRunEnv"
BASE_REQUIRES = (
"sdl/3.2.20",
"shaderc/2024.3",
"cpptrace/1.0.4",
"ogg/1.3.5",
"theora/1.1.1",
"cli11/2.6.0",
"bullet3/3.25",
"box2d/3.1.1",
"assimp/6.0.2",
"glm/1.0.1",
"vorbis/1.3.7",
"rapidjson/cci.20231212",
"lunasvg/3.0.1",
"libvips/8.16.0",
"freetype/2.13.2",
"ffmpeg/8.0.1",
"cairo/1.18.0",
"libzip/1.10.1",
"stb/cci.20231130",
"gtest/1.17.0"
)
RENDER_STACK_REQUIRES = (
"bgfx/1.129.8930-495",
"entt/3.16.0",
"materialx/1.39.1",
"spirv-cross/1.4.321.0"
)
def configure(self):
self.requires("wayland/1.23.92", override=True)
self.requires("libalsa/1.2.14", override=True)
self.requires("pulseaudio/17.0", override=True)
def layout(self):
cmake_layout(self)
def generate(self):
from conan.tools.cmake import CMakeToolchain
tc = CMakeToolchain(self)
import os
vitasdk = os.environ.get("VITASDK")
if vitasdk:
tc.toolchain_file = f"{vitasdk}/share/vita.toolchain.cmake"
self.output.trace(f"Using VITASDK toolchain file: {tc.toolchain_file}")
else:
self.output.trace("Using default CMake toolchain file.")
tc.generate()
def requirements(self):
self._add_requirements(self.BASE_REQUIRES)
self._add_requirements(self.RENDER_STACK_REQUIRES)
def _add_requirements(self, requirements):
for requirement in requirements:
self.requires(requirement)