Build accessible mobile applications with the PrismaOS SDK. Create inclusive experiences that work for everyone.
import { PrismaOS } from '@prismaos/sdk';
// Initialize accessibility-first app
const app = new PrismaOS.App({
name: 'Hello World',
accessibility: {
screenReader: true,
voiceCommands: true,
highContrast: true
}
});
// Create accessible UI elements
const button = app.createElement('button', {
text: 'Hello World',
ariaLabel: 'Say hello to the world',
onClick: () => {
app.tts.speak('Hello, accessible world!');
}
});
app.render();
Everything you need to build accessible mobile applications
Built-in accessibility features that work out of the box, ensuring your apps are inclusive by default.
Pre-built UI components that automatically adapt to user accessibility preferences and needs.
Integrate machine learning capabilities for enhanced accessibility and user assistance features.
Develop once, deploy everywhere with compatibility layers for other mobile platforms.
Comprehensive toolchain for building, testing, and debugging accessible applications.
Extensive documentation, tutorials, and community support to help you build better accessible apps.
Set up your development environment in minutes
Download and install the PrismaOS SDK using your preferred package manager.
# Using npm
npm install -g @prismaos/sdk
# Using yarn
yarn global add @prismaos/sdk
# Using pip (Python bindings)
pip install prismaos-sdk
Use the CLI tool to generate a new accessible application project.
# Create a new project
prismaos create my-accessible-app
# Navigate to project directory
cd my-accessible-app
# Start development server
prismaos dev
Use our pre-built components or create custom accessible UI elements.
import { Button, Screen, TTS } from '@prismaos/sdk';
const AccessibleButton = () => (
<Button
text="Click me"
ariaLabel="Accessible button example"
onPress={() => TTS.speak('Button pressed!')}
accessible={true}
accessibilityRole="button"
/>
);
Test your app with accessibility tools and deploy to the PrismaOS app store.
# Run accessibility tests
prismaos test --accessibility
# Build for production
prismaos build
# Deploy to app store
prismaos deploy
Comprehensive guides and API references
Real-world examples of accessible app development
Add voice output to your application content
import { TTS, Button } from '@prismaos/sdk';
const SpeakButton = ({ text, children }) => {
const handleSpeak = async () => {
try {
await TTS.speak(text, {
rate: 1.0,
pitch: 1.0,
voice: 'natural'
});
} catch (error) {
console.error('TTS Error:', error);
}
};
return (
<Button
onPress={handleSpeak}
ariaLabel={`Speak: ${text}`}
accessible={true}
>
{children}
</Button>
);
};
Enable hands-free navigation and control
import { VoiceCommands, Navigation } from '@prismaos/sdk';
const setupVoiceCommands = () => {
VoiceCommands.addCommand({
phrases: ['go home', 'navigate home'],
action: () => Navigation.navigate('Home'),
description: 'Navigate to home screen'
});
VoiceCommands.addCommand({
phrases: ['read this', 'read content'],
action: () => TTS.readPageContent(),
description: 'Read current page content'
});
VoiceCommands.start();
};
// Initialize voice commands when app starts
setupVoiceCommands();
Implement adaptive theming for better visibility
import { Theme, Settings } from '@prismaos/sdk';
const AccessibleTheme = () => {
const [highContrast, setHighContrast] = useState(
Settings.get('highContrast', false)
);
useEffect(() => {
Theme.apply(highContrast ? 'high-contrast' : 'default');
}, [highContrast]);
return (
<Switch
value={highContrast}
onValueChange={setHighContrast}
ariaLabel="Toggle high contrast mode"
accessibilityHint="Improves visibility for low vision users"
/>
);
};
Implement accessible gesture controls
import { GestureHandler, Haptics } from '@prismaos/sdk';
const AccessibleList = ({ items }) => {
const gestureHandler = GestureHandler.create({
onSwipeRight: (index) => {
// Navigate to next item
setSelectedIndex((prev) =>
Math.min(prev + 1, items.length - 1)
);
Haptics.selection();
},
onSwipeLeft: (index) => {
// Navigate to previous item
setSelectedIndex((prev) => Math.max(prev - 1, 0));
Haptics.selection();
},
onDoubleTap: (index) => {
// Activate item
onItemSelect(items[index]);
Haptics.success();
}
});
return gestureHandler.wrap(<ListView items={items} />);
};
Choose your preferred development platform