// ficção interativa acessível · inclusão para leitores cegos
Histórias do Juca
Histórias do Juca é uma plataforma de ficção interativa baseada em escolhas para um projeto social de inclusão de pessoas cegas — feita para que quem usa leitor de tela consiga de fato terminar a aventura sozinho, e ainda assim divertida para todos.
// roda no navegador · sem instalar · leia ou ouça

Capturas de tela
Visão geral
O leitor lê ou ouve uma cena e escolhe, com botões de verdade, o que acontece a seguir; cada história é um grafo ramificado de nós com finais diferentes. O herói é o Juca, um jacaré jovem e cego do Rio Cachoeira, em Joinville, Brasil, que encontra tesouros usando o olfato e a audição — o próprio protagonista espelha o público que o projeto quer acolher.
A primeira história, Juca e a Caça ao Tesouro do Rio, se ramifica em dois caminhos e dois finais. A segunda, Juca e a Corrida do Churrasco, introduz estado leve (dinheiro e tempo) que muda conforme você escolhe e libera ou esconde opções — uma corrida contra o relógio (e contra a fome) para chegar a um churrasco do outro lado da cidade.
A premissa inegociável é acessibilidade em primeiro lugar: a experiência precisa funcionar de verdade com leitores de tela (NVDA, JAWS, VoiceOver, Narrator) e navegação por teclado — não apenas "ser compatível". As escolhas são botões reais alcançáveis por Tab e acionados com Enter/Espaço; a cada troca de cena, o foco vai para o novo texto para que o leitor de tela o anuncie; há link de pular conteúdo, alto contraste, um anel de foco sempre visível e nenhuma informação transmitida apenas por cor. Narração no navegador (Web Speech API, pt-BR) com controle de velocidade, um botão nativo de compartilhar e ilustrações por cena completam a experiência.
Arquiteturalmente, o motor é totalmente separado do conteúdo: os componentes React são genéricos e agnósticos de história, enquanto cada história é autocontida em stories/<slug>/ (um grafo de nós em JSON, arte de capa e o roteiro-fonte). Um validador de grafo (pnpm validate-stories) garante que nenhum nó fique inalcançável, sem escolhas ou sem texto alternativo de imagem — mantendo a acessibilidade verificável a cada nova história publicada.
Destaques
Motor de jogo com acessibilidade em primeiro lugar, verificado com leitores de tela reais
(NVDA, JAWS, VoiceOver, Narrator) e navegação somente por teclado, com percursos automatizados em Playwright — transformando "compatível com leitor de tela" em um produto que uma criança cega consegue de fato terminar sozinha, que é todo o alcance deste projeto social.
Desacoplei um motor de histórias agnóstico de conteúdo de grafos definidos em JSON
(além de estado leve opcional, como dinheiro e tempo), para que autores publiquem uma nova história ramificada — e até novas mecânicas de jogo — sem tocar em uma linha do código do motor, levando o custo de cada nova história para perto de zero.
Fiz cada cena funcionar sem as mãos e pronta para compartilhar, de imediato
narração no navegador (Web Speech API) com controle de velocidade, ilustrações por cena geradas por IA e compartilhamento nativo com fallback de copiar link — para que as histórias cheguem às crianças sem instalar app e sem conta de TTS paga.