image

Accede a bootcamps ilimitados y a más de 650 cursos para siempre

60
%OFF
Article image
Regilaine Silva
Regilaine Silva10/10/2025 09:01
Compartir

💡 Python e Inclusão: Criando Soluções Acessíveis para Autismo, Dislexia e TDAH

  • #Adaptabilidade
  • #Python
  • #IA Generativa

O universo da programação, muitas vezes visto como um nicho para poucos, está se transformando em uma poderosa ferramenta para a inclusão digital e social. O Python, com sua sintaxe clara e vasta gama de bibliotecas, se destaca como a linguagem ideal para desenvolver Tecnologias Assistivas (TAs) focadas em atender as necessidades de pessoas neurodivergentes, incluindo indivíduos com Transtorno do Espectro Autista (TEA), Dislexia e Transtorno do Déficit de Atenção e Hiperatividade (TDAH).

Por Que Python é a Escolha Certa para Acessibilidade?

A escolha da linguagem de programação é crucial para projetos de inclusão. O Python oferece vantagens significativas:

  • Sintaxe Simples e Legível: A curva de aprendizado suave do Python, com código que se assemelha à linguagem natural, é um grande benefício. Isso reduz a carga cognitiva, o que é especialmente útil para quem tem TDAH (dificuldade de concentração) ou Dislexia (dificuldade de leitura e interpretação de código complexo).
  • Vasta Coleção de Bibliotecas: O ecossistema Python possui ferramentas prontas que aceleram o desenvolvimento de funcionalidades avançadas, como Inteligência Artificial (IA), Processamento de Linguagem Natural (PLN) e interfaces gráficas customizadas.
  • Comunidade de Suporte Ativa: A comunidade Python é conhecida por ser acolhedora e oferecer inúmeros recursos gratuitos e tutoriais, facilitando o desenvolvimento e a manutenção de projetos de código aberto focados na inclusão.

🛠️ Ideias de Programas em Python para Inclusão Neurodivergente

A versatilidade do Python permite criar soluções focadas nas necessidades específicas de cada condição:

1. Para Dislexia: Simplificação e Adaptação de Texto

A dislexia afeta a capacidade de leitura. O Python pode ser usado para criar ferramentas que adaptam o conteúdo digital:

Simplificador de Texto (IA/PLN)NLTK, spaCySimplifica frases complexas e resume textos longos para reduzir a sobrecarga de leitura.

Leitura em Voz Alta (Text-to-Speech)gTTS, pyttsx3 Converte texto em áudio, permitindo que o usuário escute o conteúdo em vez de lê-lo.

Interface de Leitura Personalizável Tkinter, Kivy, StreamlitCria interfaces que permitem ao usuário alterar a fonte (para fontes amigáveis à dislexia), espaçamento entre linhas e cores de fundo (baixo contraste).

2. Para TDAH: Foco e Estrutura

Para quem tem TDAH, o desafio é manter o foco e a organização. Os aplicativos precisam ser interativos, envolventes e estruturados:

RecursoBiblioteca Python Sugerida

"Pomodoro" Visual e InterativoPyGame Um temporizador com feedback visual (gráficos de progresso) e recompensas interativas para manter o engajamento e a gestão do tempo.

Gerenciador de Tarefas Focado Flask ou Django (Web Apps) Um aplicativo que divide grandes tarefas em micropassos claros, com alertas de foco e minimalismo visual para evitar distrações.

Automação de Rotinas Selenium (para tarefas web), Scripting Básico Scripts que automatizam tarefas repetitivas (como organizar arquivos ou preencher formulários), liberando a atenção para atividades mais complexas.

3. Para Autismo (TEA): Comunicação e Previsibilidade

Muitas pessoas com TEA se beneficiam de comunicação visual, rotinas claras e interações sensoriais controladas:

RecursoBiblioteca Python

Comunicação Aumentativa e Alternativa (CAA)PyGame, Kivy Cria interfaces baseadas em símbolos (PEC-like) para facilitar a comunicação não verbal, com feedback de áudio ou visual para a seleção.

Criador de Histórias Sociais/Rotinas VisuaisPillow (Manipulação de Imagens) Gera sequências visuais personalizadas para rotinas ou situações sociais, promovendo previsibilidade e diminuindo a ansiedade.

Feedback Sensorial Controlado Bibliotecas de áudio/vibração (Hardware)Aplicações que oferecem estímulos sensoriais (luz, som) em ambientes controlados para ajudar na autorregulação.

🚀 Exemplo Prático: Um Simplificador de Texto com Acessibilidade

Para ilustrar o potencial do Python, apresentamos um programa simples que permite simplificar textos e personalizar a interface para melhorar a legibilidade. Este protótipo é especialmente útil para pessoas com Dislexia ou TDAH.

Pré-requisitos:

Certifique-se de ter o Python instalado. Em seguida, instale as bibliotecas necessárias via terminal:

pip install pyttsx3 playsound

Código do Programa (programa_inclusao.py):

Python

import tkinter as tk
from tkinter import scrolledtext, ttk, messagebox
import pyttsx3
import os
import re

# --- Configuração do pyttsx3 (Text-to-Speech) ---
try:
  engine = pyttsx3.init()
  # Tenta configurar uma voz em português
  voices = engine.getProperty('voices')
  for voice in voices:
      if "portuguese" in voice.name.lower() or "brazil" in voice.name.lower():
          engine.setProperty('voice', voice.id)
          break
  else:
      print("Aviso: Voz em português não encontrada, usando voz padrão.")
except Exception as e:
  print(f"Erro ao inicializar pyttsx3: {e}")
  engine = None # Desativa a funcionalidade se houver erro

# --- Funções de Processamento de Texto ---

def simplificar_texto(texto):
  """
  Aplica regras básicas de simplificação de texto.
  Ideal para dislexia/TDAH, reduzindo a complexidade.
  """
  # 1. Substituições de termos complexos por mais simples
  substituicoes = {
      r"com o objetivo de": "para",
      r"entretanto,": "mas,",
      r"ademais,": "além disso,",
      r"destarte,": "assim,",
      r"portanto,": "então,",
      r"dessa forma,": "assim,",
      r"a fim de que": "para que",
      r"em virtude de": "por causa de",
      r"considerando que": "já que",
      r"proceder à": "fazer a",
      r"efetuar a": "fazer a",
      r"empreender": "fazer",
      r"concomitantemente": "ao mesmo tempo",
      r"subsequentemente": "depois",
      r"previamente": "antes",
      r"disponibilizar": "oferecer",
      r"viabilizar": "tornar possível",
      r"metodologia": "modo de fazer",
      r"espectro": "grupo", # Útil para TEA também, simplifica o termo "Espectro Autista"
  }
  
  texto_simplificado = texto
  for complexo, simples in substituicoes.items():
      # Usa re.IGNORECASE para ser insensível a maiúsculas/minúsculas
      texto_simplificado = re.sub(complexo, simples, texto_simplificado, flags=re.IGNORECASE)

  # 2. Quebrar frases muito longas (se contiverem certas palavras-chave)
  # Esta é uma regra heurística e pode precisar de ajustes.
  # Exemplo: Se uma frase tem mais de 18 palavras e contém "e", "mas", tenta quebrar.
  frases = re.split(r'(?<=[.!?]) +', texto_simplificado)
  frases_processadas = []
  for frase in frases:
      palavras = frase.split()
      if len(palavras) > 18 and ("e" in palavras or "mas" in palavras):
          # Tenta encontrar um ponto de quebra lógico
          if "e" in palavras:
              indice_e = palavras.index("e")
              frases_processadas.append(" ".join(palavras[:indice_e+1]) + ".\n")
              frases_processadas.append(" ".join(palavras[indice_e+1:]) + ".")
          elif "mas" in palavras:
              indice_mas = palavras.index("mas")
              frases_processadas.append(" ".join(palavras[:indice_mas+1]) + ".\n")
              frases_processadas.append(" ".join(palavras[indice_mas+1:]) + ".")
          else: # Caso não encontre um ponto de quebra específico, apenas adiciona
              frases_processadas.append(frase + "\n")
      else:
          frases_processadas.append(frase + "\n") # Adiciona nova linha para legibilidade

  texto_simplificado = "".join(frases_processadas).strip()
  
  # 3. Remover linhas em branco duplicadas
  texto_simplificado = re.sub(r'\n\s*\n', '\n\n', texto_simplificado)

  return texto_simplificado

def ler_texto(texto):
  """
  Lê o texto em voz alta usando pyttsx3.
  """
  if engine:
      try:
          engine.say(texto)
          engine.runAndWait()
      except Exception as e:
          messagebox.showerror("Erro de Leitura", f"Não foi possível ler o texto: {e}")
  else:
      messagebox.showwarning("Leitura Desativada", "A funcionalidade de leitura em voz alta não está disponível ou falhou ao inicializar.")

# --- Funções da GUI ---

def aplicar_simplificacao():
  """
  Pega o texto da entrada, simplifica e exibe na saída.
  """
  texto_original = entrada_texto.get("1.0", tk.END).strip()
  if not texto_original:
      saida_texto.delete("1.0", tk.END)
      saida_texto.insert(tk.END, "Por favor, insira algum texto para simplificar.")
      return
  
  texto_simplificado = simplificar_texto(texto_original)
  saida_texto.delete("1.0", tk.END)
  saida_texto.insert(tk.END, texto_simplificado)

def ler_texto_selecionado_ou_todo():
  """
  Lê o texto selecionado na área de saída.
  Se nada estiver selecionado, lê todo o texto simplificado.
  """
  texto_para_ler = ""
  try:
      # Tenta pegar a seleção primeiro
      texto_para_ler = saida_texto.get(tk.SEL_FIRST, tk.SEL_LAST)
  except tk.TclError:
      # Se não houver seleção, pega todo o conteúdo da saída
      texto_para_ler = saida_texto.get("1.0", tk.END).strip()
  
  if texto_para_ler:
      ler_texto(texto_para_ler)
  else:
      messagebox.showinfo("Nenhum Texto", "Nenhum texto para ler. Por favor, insira ou simplifique um texto.")

def parar_leitura():
  """
  Para a leitura em voz alta.
  """
  if engine:
      engine.stop()

def restaurar_padrao():
  """
  Restaura as configurações de fonte para o padrão.
  """
  entrada_texto.config(font=("Arial", 12, "normal"), fg="black", bg="white")
  saida_texto.config(font=("Arial", 12, "normal"), fg="black", bg="white")
  messagebox.showinfo("Configurações", "Cores e fonte restauradas para o padrão.")

def aplicar_configuracoes():
  """
  Aplica as configurações de fonte e cor selecionadas.
  """
  tamanho = int(tamanho_fonte_var.get())
  fonte = tipo_fonte_var.get()
  contraste = contraste_var.get()

  fg_color = "black"
  bg_color = "white"

  if contraste == "alto":
      fg_color = "white"
      bg_color = "black"
  elif contraste == "amarelo_azul":
      fg_color = "blue"
      bg_color = "yellow"
  elif contraste == "azul_amarelo":
      fg_color = "yellow"
      bg_color = "blue"

  fonte_config = (fonte, tamanho, "normal")
  entrada_texto.config(font=fonte_config, fg=fg_color, bg=bg_color)
  saida_texto.config(font=fonte_config, fg=fg_color, bg=bg_color)
  messagebox.showinfo("Configurações", "Cores e fonte aplicadas com sucesso!")

# --- Configuração da Janela Principal ---
janela = tk.Tk()
janela.title("PyInclusão: Simplificador de Texto")
janela.geometry("1000x700") # Tamanho inicial da janela

# --- Frame Superior para Entrada de Texto ---
frame_entrada = ttk.LabelFrame(janela, text="Texto Original", padding="10")
frame_entrada.pack(padx=10, pady=5, fill=tk.BOTH, expand=True)

entrada_texto = scrolledtext.ScrolledText(frame_entrada, wrap=tk.WORD, width=40, height=10, font=("Arial", 12))
entrada_texto.pack(fill=tk.BOTH, expand=True)
entrada_texto.insert(tk.END, "Copie e cole seu texto aqui. Este programa irá tentar simplificar frases complexas e termos difíceis para facilitar a leitura. Clique em 'Simplificar Texto' para ver o resultado. Você pode personalizar a fonte e as cores para melhorar a legibilidade. O Transtorno do Espectro Autista é uma condição complexa. Com o objetivo de auxiliar pessoas com TDAH, o foco visual é crucial. Entretanto, muitas interfaces não consideram isso.")

# --- Botões de Ação ---
frame_botoes = ttk.Frame(janela, padding="10")
frame_botoes.pack(pady=5)

botao_simplificar = ttk.Button(frame_botoes, text="Simplificar Texto", command=aplicar_simplificacao)
botao_simplificar.pack(side=tk.LEFT, padx=5)

botao_ler = ttk.Button(frame_botoes, text="Ler Texto (Seleção/Todo)", command=ler_texto_selecionado_ou_todo)
botao_ler.pack(side=tk.LEFT, padx=5)

botao_parar_leitura = ttk.Button(frame_botoes, text="Parar Leitura", command=parar_leitura)
botao_parar_leitura.pack(side=tk.LEFT, padx=5)

# --- Frame Inferior para Saída de Texto ---
frame_saida = ttk.LabelFrame(janela, text="Texto Simplificado", padding="10")
frame_saida.pack(padx=10, pady=5, fill=tk.BOTH, expand=True)

saida_texto = scrolledtext.ScrolledText(frame_saida, wrap=tk.WORD, width=40, height=10, font=("Arial", 12))
saida_texto.pack(fill=tk.BOTH, expand=True)

# --- Frame de Configurações de Acessibilidade ---
frame_configuracoes = ttk.LabelFrame(janela, text="Configurações de Acessibilidade", padding="10")
frame_configuracoes.pack(padx=10, pady=10, fill=tk.X)

# Tamanho da Fonte
ttk.Label(frame_configuracoes, text="Tamanho da Fonte:").grid(row=0, column=0, padx=5, pady=2, sticky="w")
tamanho_fonte_var = tk.StringVar(value="12")
combo_tamanho_fonte = ttk.Combobox(frame_configuracoes, textvariable=tamanho_fonte_var,
                                 values=[str(i) for i in range(10, 25, 2)], width=5)
combo_tamanho_fonte.grid(row=0, column=1, padx=5, pady=2, sticky="ew")

# Tipo da Fonte (Exemplos de fontes dislexia-friendly)
ttk.Label(frame_configuracoes, text="Tipo de Fonte:").grid(row=1, column=0, padx=5, pady=2, sticky="w")
tipo_fonte_var = tk.StringVar(value="Arial")
combo_tipo_fonte = ttk.Combobox(frame_configuracoes, textvariable=tipo_fonte_var,
                              values=["Arial", "Verdana", "Open Sans", "Comic Sans MS", "Lexend Deca"], width=15)
combo_tipo_fonte.grid(row=1, column=1, padx=5, pady=2, sticky="ew")

# Contraste de Cores
ttk.Label(frame_configuracoes, text="Contraste de Cores:").grid(row=2, column=0, padx=5, pady=2, sticky="w")
contraste_var = tk.StringVar(value="normal")
combo_contraste = ttk.Combobox(frame_configuracoes, textvariable=contraste_var,
                             values=["normal", "alto", "amarelo_azul", "azul_amarelo"], width=15)
combo_contraste.grid(row=2, column=1, padx=5, pady=2, sticky="ew")

# Botões de Aplicar/Restaurar
botao_aplicar_config = ttk.Button(frame_configuracoes, text="Aplicar Configurações", command=aplicar_configuracoes)
botao_aplicar_config.grid(row=0, column=2, padx=10, pady=5, rowspan=2, sticky="ns")

botao_restaurar_padrao = ttk.Button(frame_configuracoes, text="Restaurar Padrão", command=restaurar_padrao)
botao_restaurar_padrao.grid(row=2, column=2, padx=10, pady=5, sticky="ns")

# Colocar o frame de configurações para expandir colunas
frame_configuracoes.grid_columnconfigure(1, weight=1) # Faz a coluna do combobox expandir
frame_configuracoes.grid_columnconfigure(2, weight=0) # Botões não expandem

# --- Loop Principal da Aplicação ---
janela.mainloop()

Como Usar e Testar o Programa:

  1. Salve o código: Salve o código acima como programa_inclusao.py em uma pasta de sua escolha.
  2. Abra o Terminal/Prompt de Comando: Navegue até a pasta onde você salvou o arquivo.
  3. Execute o programa: Digite python programa_inclusao.py e pressione Enter.

Uma janela gráfica se abrirá:

image

Texto Original: Cole qualquer texto que deseja simplificar. O exemplo inicial já demonstra como o programa funciona.

  • Simplificar Texto: Clique para processar o texto. O resultado aparecerá na seção "Texto Simplificado".
  • Ler Texto (Seleção/Todo):
  • Selecione uma parte do texto na área "Texto Simplificado" e clique para ouvir apenas o trecho.
  • Se nada estiver selecionado, o programa lerá todo o texto simplificado.
  • Parar Leitura: Interrompe a leitura em andamento.
  • Configurações de Acessibilidade:
  • Tamanho da Fonte: Ajuste para um tamanho mais confortável.
  • Tipo de Fonte: Experimente diferentes fontes. "Comic Sans MS" e "Lexend Deca" (se instalada em seu sistema) são mencionadas como potencialmente mais amigáveis para disléxicos.
  • Contraste de Cores: Escolha entre opções como "alto contraste" (branco no preto) ou combinações específicas (azul no amarelo/amarelo no azul), que podem reduzir a fadiga visual para alguns usuários.
  • Clique em "Aplicar Configurações" para ver as mudanças e "Restaurar Padrão" para reverter.

Conclusão: Um Futuro de Desenvolvimento Inclusivo

O Python não é apenas uma linguagem de programação; é um agente de mudança. Sua facilidade de uso e poder analítico o tornam a ferramenta perfeita para criar soluções que preenchem a lacuna de acessibilidade digital para a comunidade neurodivergente.

Ao priorizar o design com foco em clareza visual, interatividade e estruturas previsíveis, os desenvolvedores Python podem transformar o mundo digital em um espaço verdadeiramente inclusivo. Este pequeno programa é um convite para que você explore e contribua para essa causa tão importante.

Compartir
Recomendado para ti
Luizalabs - Back-end com Python
Suzano - Python Developer #2
Suzano - Python Developer
Comentarios (1)
DIO Community
DIO Community - 10/10/2025 10:00

Excelente, Regilaine! Que artigo incrível e super completo sobre Python e Inclusão! É fascinante ver como você aborda o tema, mostrando que o Python, com sua sintaxe clara e vasto ecossistema, é a linguagem ideal para criar Tecnologias Assistivas (TAs) que promovem a inclusão social e digital de pessoas neurodivergentes (TEA, Dislexia e TDAH).

Qual você diria que é o maior desafio para um desenvolvedor ao implementar os princípios de IA responsável em um projeto, em termos de balancear a inovação e a eficiência com a ética e a privacidade, em vez de apenas focar em funcionalidades?