Notícias Cebraspe

Seminário sobre acessibilidade contribui para o debate sobre maior inclusão nos processos de avaliação

Evento reuniu especialistas de várias universidades do país

O compromisso do Cebraspe com a inclusão e a acessibilidade foi reforçado por uma recente roda de debates e troca de informações. Especialistas de várias universidades do país se encontraram no fim do mês de maio no Seminário Acessibilidade para surdos: inclusão e processos de avaliação, iniciativa do Centro, que contou com palestrantes se comunicando em Libras.

Realizado no mês em que se comemora o Dia Mundial da Conscientização sobre Acessibilidade, o evento teve o objetivo de demonstrar para a sociedade o trabalho que a instituição realiza para garantir a acessibilidade nos processos de avaliação. Durante a abertura do evento, a Diretora-Geral Adriana Weska ressaltou a importância da iniciativa, “Objetivamos agregar conhecimentos às nossas atividades, aperfeiçoar as traduções realizadas e contribuir com a discussão sobre acessibilidade e inclusão nos processos de avaliação”, afirmou.

De acordo com o último balanço realizado pela instituição, em 2021, mais de 27,4 mil pessoas com deficiência se inscreveram nos eventos organizados pelo Centro e todos os que compareceram às provas receberam o suporte necessário de modo a concorrer às vagas em igualdade de condições com os demais candidatos.

Programação – Durante a programação composta por cinco mesas-redondas, especialistas de várias universidades do país, como a Pontifícia Universidade Católica de São Paulo (PUC-SP), a Universidade Federal de Santa Catarina (UFSC), a Universidade de Brasília (UnB), a Universidade Federal do Rio de Janeiro (UFRJ) e a Universidade de São Paulo (USP), debateram a respeito das diversas possibilidades de interação entre a língua portuguesa e a de sinais.

“Intersecções entre língua oral e língua de sinais: possibilidades tradutórias no trabalho com o par linguístico Libras e Língua Portuguesa” foi o tema da primeira apresentação, ministrada por Carla Sparano Tesser, doutora e mestre em Linguística Aplicada e Estudos da Linguagem pela PUC-SP.

Em sua fala, a professora comentou sobre a definição de língua e imagem, apontou as principais modalidades entre as línguas de sinais e  as línguas orais e os conceitos entre traduzir e interpretar. Segundo ela, a materialidade da comunicação confere às línguas de sinais propriedades diferentes das que confere às línguas orais.

A segunda apresentação tratou sobre “Videoprova em Libras: a experiência do Enem em Libras”. A professora Marianne Stumpf, doutora pela Universidade Federal do Rio Grande do Sul e pós-doutora pela Universidade Católica Portuguesa, detalhou o perfil do tradutor surdo que produz os materiais para o Enem, elencou as principais exigências observadas no processo de contratação dos profissionais e explicou todo o processo de preparação das videoprovas.

Para Marianne, o exame do Enem em Libras ainda não está perfeito e a aplicação das provas está em processo contínuo de melhorias. “Estamos cientes do grande impacto que as produções dos exames provocam na educação em que os surdos estão presentes. É um evento de transformação social”, afirmou. “Esperamos, no futuro, poder organizar um banco nacional de dados em Libras e construir um glossário para que esses sinais sejam padronizados e possam ser utilizados nas escolas, além de proporcionar o acesso público ao banco de dados e promover a formação multiprofissional”, espera.

No turno da tarde, o evento teve início com a mesa-redonda “Instrumentos de avaliação em Língua Portuguesa e em Libras: formas de se aproximar da pessoa Surda”. O debate contou com a participação da pós-doutora Enilde Faulstich, pesquisadora do Departamento de Linguística, Português e Línguas Clássicas (LIP) da UnB, que apresentou o trabalho que vem sendo desenvolvido com o objetivo de ampliar e de melhorar cada vez mais a proposta de trabalhar com o português como segunda língua para comunidades indígenas, surdos, estrangeiros e surdocegos.

A professora relatou, ainda, a experiência da instituição no desenvolvimento do projeto “Ensino e formação de professor bilíngue: Língua de Sinais Brasileira – Português como Segunda Língua (LSB e PSL).

Na sequência, a professora do Departamento de Libras da UFSC, doutora Janine Soares, fez uma apresentação sobre os instrumentos de avaliação em Libras utilizados nas provas do Enem.

Já a quarta mesa-redonda debateu sobre o tema “Repertórios lexicográficos e Competências tradutórias: TILS versus softwares de tradução de Libras” e contou com a participação do doutor em Linguística pela UnB, o professor Gláucio de Castro Júnior. Ele falou sobre o projeto de criação do Núcleo de Acessibilidade Linguística e Videográfica em Libras/Português na universidade e trouxe recomendações para contribuir com a melhoria do serviço de tradução dos editais e das provas produzidas pelo Cebraspe.

O debate também contou com a apresentação do mestre em Linguística pela UFRJ, o professor e tradutor Rodrigo Pereira Leal de Souza, que trouxe reflexões a respeito de competência tradutória e formação por competências, conhecimentos essenciais para a atuação do tradutor intérprete. Por fim, a doutora em Linguística e mestre em Educação pela UnB, professora Patrícia Tuxi, falou sobre repertórios lexicográficos – que são os dicionários, glossários e vocabulários -, competências tradutórias e softwares de tradução como o Hand Talk e o VLibras.

A quinta mesa-redonda tratou sobre “Acessibilidade nos processos de avaliação”, contando com debates dos palestrantes em Libras, a doutora da USP Sylvia Lia Grespan Neves e o professor doutor da PUC-SP Elias Paulino da Cunha Junior. Na ocasião, Sylvia Lia compartilhou um pouco da sua história e das limitações e barreiras comunicacionais que enfrentou no ambiente acadêmico. Já o professor Elias Paulino falou sobre a necessidade de maior inclusão dos surdos nos processos de avaliação, apontando problemas existentes que ainda precisam ser superados para proporcionar mais igualdade ao processo avaliativo e educativo dessas pessoas.

O evento foi encerrado pela Diretora Executiva do Cebraspe Cláudia Griboski, que agradeceu a participação e deixou uma mensagem.

“O Cebraspe é uma instituição que vem, ao longo dos anos, enriquecendo seus processos de avaliação com a implementação qualificada de instrumentos e estratégias que promovam a inclusão plena das pessoas com deficiência. Os desafios são muitos, mas a essência para a mudança de paradigmas passa pela escuta da sociedade e pelo investimento na formação de pessoas. Esperamos com esse seminário contribuir com a transformação de práticas que fazem parte do nosso cotidiano e inspirar para a melhoria de processos”, disse. “A riqueza da integridade desse seminário com certeza fará com que sejamos referência na produção de provas acessíveis”, avaliou.

Confira todas as palestras no canal do Cebraspe no YouTube.

Compartilhe esta notícia

Foto de Soraya Silva

Soraya Silva

if(document.querySelector(".xpbox-shared-header")){ // Site-wide shared native shell; published links never target draft page URLs. (() => { const init=()=>{ const header=document.querySelector('.xpbox-shared-header'); if(!header)return; const main=document.querySelector('#conteudo')||document.querySelector('main')||document.querySelector('#content'); if(main){if(!main.id)main.id='xpbox-main-content';header.querySelectorAll('.skip-link a,a.skip-link').forEach(link=>link.setAttribute('href','#'+main.id));} const base='https://cebraspe.xpbox.com.br/'; const normalize=path=>path.replace(//+$/,'')||'/'; const draftHome=document.body.classList.contains('page-id-26754'); const draftHiring=document.body.classList.contains('page-id-26763'); const currentPath=draftHome?'/':draftHiring?'/contrate-o-cebraspe-xpbox':normalize(window.location.pathname); document.querySelectorAll('.xpbox-shell a[href]').forEach(link=>{ const url=new URL(link.getAttribute('href'),window.location.href); if(url.origin!==new URL(base).origin)return; if(normalize(url.pathname)==='/pagina-inicial-xpbox')url.pathname='/'; if(normalize(url.pathname)==='/como-contratar')url.pathname='/contrate-o-cebraspe-xpbox/'; if(link.getAttribute('href')==='#solicitar-proposta')url.pathname='/contrate-o-cebraspe-xpbox/'; link.setAttribute('href',url.href); }); header.querySelectorAll('#primary-menu a.nav-link').forEach(link=>{ const url=new URL(link.href,base); link.removeAttribute('aria-current'); if(url.origin===new URL(base).origin&&normalize(url.pathname)===currentPath)link.setAttribute('aria-current','page'); }); header.querySelectorAll('.language-nav a[lang="pt-BR"],.header-language-nav a[lang="pt-BR"]').forEach(link=>{ link.href=draftHome||draftHiring?window.location.href:base+window.location.pathname.replace(/^//,''); link.setAttribute('aria-current','page'); }); header.querySelectorAll('.utility-accessibility,.header-accessibility').forEach(widget=>{ const link=widget.matches('a')?widget:widget.querySelector('a'); if(link)link.setAttribute('href',draftHiring?'#acessibilidade-da-pagina':base+'avaliacoes/acessibilidade/'); }); const location=header.closest('.elementor-location-header'),utility=header.querySelector('.utility-bar'); if(location&&utility&&!location.dataset.xpboxUtilityMeasured){ location.dataset.xpboxUtilityMeasured='true'; const measure=()=>location.style.setProperty('--xpbox-utility-height',utility.offsetHeight+'px'); measure();if(window.ResizeObserver)new ResizeObserver(measure).observe(utility);else window.addEventListener('resize',measure,{passive:true}); } }; if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init(); })(); /* Behavior only. Content is rendered by native Elementor widgets. */ (() => { const init = () => { const page=document.querySelector('.xpbox-page'); document.querySelectorAll(':is(.xpbox-page,.xpbox-shell) :is(.menu-toggle,.nav-disclosure,[data-text-scale],[data-contrast-toggle],.carousel-button,[data-submit-button])').forEach(widget=>{ const button=widget.querySelector('.elementor-button'); if(!button||button.dataset.xpboxMirrored)return; button.dataset.xpboxMirrored='true'; button.addEventListener('click',e=>e.preventDefault()); button.setAttribute('role','button'); button.addEventListener('keydown',e=>{if(e.key===' '){e.preventDefault();button.click();}}); const mirror=()=>['aria-expanded','aria-pressed','aria-label','aria-disabled'].forEach(name=>{ if(widget.hasAttribute(name))button.setAttribute(name,widget.getAttribute(name)); }); mirror();new MutationObserver(mirror).observe(widget,{attributes:true,attributeFilter:['aria-expanded','aria-pressed','aria-label','aria-disabled']}); }); if(!page||page.dataset.xpboxReady)return; page.dataset.xpboxReady='true'; const form=page.querySelector('.xpbox-request-form'); if(!form)return; const profile=form.querySelector('.xpbox-profile-form form'); const fields=form.querySelector('.institution-fields'); const status=form.querySelector('#route-status'); const response=form.querySelector('#response-panel'); const errorSummary=form.querySelector('#error-summary'); const errorList=errorSummary.querySelector('.xpbox-tag-ul'); const live=form.querySelector('[data-form-live]'); const submit=form.querySelector('[data-submit-button]'); const submitAnchor=submit.querySelector('a'); const submitLabel=submit.querySelector('[data-submit-label]'); fields.hidden=true; form.querySelectorAll('.xpbox-field-form').forEach(widget=>{ const input=widget.querySelector('input:not([type=hidden]),select,textarea'); if(!input)return; const label=widget.parentElement.querySelector('.xpbox-tag-label'); if(label){label.id='xpbox-label-'+input.id;input.setAttribute('aria-labelledby',label.id);} for(const [key,value] of Object.entries(widget.dataset)){ if(!key.startsWith('input'))continue; const attr=key.slice(5).replace(/[A-Z]/g,c=>'-'+c.toLowerCase()).replace(/^-/,''); input.setAttribute(attr,value); } }); const setStatus=(target,text,href,label)=>{ target.replaceChildren(document.createTextNode(text)); if(href){const a=document.createElement('a');a.href=href;a.textContent=label;target.append(a);} target.hidden=false;target.setAttribute('role','status');target.tabIndex=-1;target.focus(); }; // No Elementor AJAX, email or file upload in the demonstration. form.addEventListener('submit',event=>{ event.preventDefault();event.stopImmediatePropagation(); if(event.target!==profile)return; const selected=profile.querySelector('input:checked')?.value; if(!selected){form.querySelector('#profile-error').textContent='Selecione um perfil antes de continuar.';return;} form.querySelector('#profile-error').textContent=''; form.classList.toggle('is-institution',selected==='instituicao'); fields.hidden=selected!=='instituicao'; if(selected==='instituicao'){ status.hidden=true; const heading=form.querySelector('#institution-form-title'); heading?.focus();heading?.scrollIntoView({behavior:'smooth',block:'center'}); }else if(selected==='candidato')setStatus(status,'Atendimento ao candidato. Consulte o ','/fale-conosco/','Fale com o Cebraspe ou a página da sua seleção.'); else if(selected==='aplicador')setStatus(status,'Atendimento ao aplicador. Acesse a área ','/colaborador/','Para o colaborador para orientações sobre atividades de campo.'); },true); let attempts=0,busy=false; const validate=()=>{ errorList.replaceChildren();errorSummary.hidden=true; form.querySelectorAll('.field-error').forEach(error=>error.textContent=''); const inputs=[...fields.querySelectorAll('.elementor-field:not([type=hidden])')]; const invalid=[]; for(const input of inputs){ input.setCustomValidity('');input.removeAttribute('aria-invalid'); if(input.id==='form-field-telefone'&&input.value&&!/^d{10,11}$/.test(input.value.replace(/D/g,'')))input.setCustomValidity('Informe DDD e número, com 10 ou 11 dígitos.'); if(input.id==='form-field-uf'&&input.value&&!/^[a-z]{2}$/i.test(input.value))input.setCustomValidity('Use a sigla da unidade federativa com duas letras.'); if(input.id==='form-field-descricao'&&input.value&&input.value.trim().length{e.preventDefault();input.focus();});item.append(link);errorList.append(item);invalid.push(input); } } if(invalid.length){errorSummary.hidden=false;errorSummary.focus();return false;} return true; }; const simulate=()=>{ if(busy||!validate())return; busy=true;response.hidden=true;form.setAttribute('aria-busy','true'); submitAnchor.setAttribute('aria-disabled','true');submitLabel.textContent='Enviando demonstração...'; live.textContent='Enviando demonstração. Nenhum dado será transmitido.'; attempts++; window.setTimeout(()=>{ const failed=attempts===1; response.classList.toggle('is-error',failed); response.querySelector('.xpbox-response-failure').hidden=!failed; response.querySelector('.xpbox-response-success').hidden=failed; response.querySelectorAll('[data-response-value]').forEach(widget=>{ const target=widget.querySelector('p')||widget.querySelector('.elementor-widget-container'); target.textContent=form.querySelector('#form-field-'+widget.dataset.responseValue)?.value||''; }); const email=form.querySelector('#form-field-email')?.value||''; const note=response.querySelector('[data-email-expectation]'); (note.querySelector('p')||note.querySelector('.elementor-widget-container')).textContent=`Na produção, uma confirmação automática com protocolo, resumo e prazo seria enviada para ${email}. Este protótipo não enviou e-mail.`; response.hidden=false;response.focus();busy=false;form.removeAttribute('aria-busy'); submitAnchor.setAttribute('aria-disabled','false');submitLabel.textContent='Solicitar proposta'; live.textContent=failed?'Falha demonstrativa. As informações foram preservadas e a solicitação pode ser tentada novamente.':'Simulação concluída. Protocolo fictício e resumo disponíveis.'; },800); }; submit.addEventListener('click',event=>{event.preventDefault();simulate();}); form.querySelector('[data-prototype-retry]')?.addEventListener('click',event=>{event.preventDefault();simulate();}); fields.addEventListener('input',event=>{ if(!event.target.matches('input,select,textarea'))return; event.target.setCustomValidity('');event.target.removeAttribute('aria-invalid'); const error=form.querySelector('#'+event.target.id.replace('form-field-','')+'-error');if(error)error.textContent=''; response.hidden=true;live.textContent=''; }); }; if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init(); })(); (() => { /* XPBOX editor-safe global search 20260916: editor canvas must remain editable. */ const isElementorEditor = document.body.classList.contains('elementor-editor-active') || Boolean(window.elementor?.isEditMode?.()); if (isElementorEditor) { const overlay = document.querySelector('.xpbox-shared-header #global-search'); if (overlay) { overlay.hidden = true; overlay.setAttribute('aria-hidden', 'true'); overlay.style.display = 'none'; } return; } const header = document.querySelector('.xpbox-shared-header .site-header'); const menuToggle = header?.querySelector('.menu-toggle'); const primaryMenu = header?.querySelector('#primary-menu'); if (!header || !menuToggle || !primaryMenu || header.dataset.globalHeaderReady === 'true') return; header.dataset.globalHeaderReady = 'true'; const megaItems = Array.from(primaryMenu.querySelectorAll('.nav-item')).filter((item) => item.querySelector('.submenu-panel')); const desktopMegaCapable = window.matchMedia('(min-width: 1280px) and (hover: hover) and (pointer: fine)'); const searchToggle = header.querySelector('.global-search-toggle'); const searchOverlay = document.querySelector('.xpbox-shared-header #global-search'); const searchClose = searchOverlay?.querySelector('.search-close'); const searchInput = searchOverlay?.querySelector('.elementor-search-form__input'); let closeMegaTimer; let pinnedMegaItem = null; let searchReturnFocus = null; document.querySelectorAll('.xpbox-shared-header [data-language-choice][aria-disabled="true"]').forEach((link) => { link.addEventListener('click', (event) => { event.preventDefault(); visualStatus.textContent = `${link.dataset.languageChoice}: tradução pendente de revisão humana e integração no WordPress.`; }); }); const textScaleButtons = Array.from(document.querySelectorAll('.xpbox-shared-header [data-text-scale]')); const contrastButtons = Array.from(document.querySelectorAll('.xpbox-shared-header [data-contrast-toggle]')); const visualStatus = document.createElement('span'); const allowedScales = [0.9, 1, 1.1]; let visualScale = 1; let highContrast = false; visualStatus.className = 'sr-only'; visualStatus.setAttribute('role', 'status'); visualStatus.setAttribute('aria-live', 'polite'); header.appendChild(visualStatus); try { const storedScale = Number(window.sessionStorage.getItem('cebraspe-text-scale')); if (allowedScales.includes(storedScale)) visualScale = storedScale; highContrast = window.sessionStorage.getItem('cebraspe-high-contrast') === 'true'; } catch { visualScale = 1; highContrast = false; } const syncVisualPreferences = (announcement = '') => { document.body.style.zoom = visualScale === 1 ? '' : String(visualScale); document.documentElement.toggleAttribute('data-high-contrast', highContrast); if (highContrast) document.documentElement.setAttribute('data-high-contrast', 'true'); textScaleButtons.forEach((button) => { const direction = button.dataset.textScale; button.disabled = direction === 'increase' ? visualScale === 1.1 : visualScale === 0.9; }); contrastButtons.forEach((button) => button.setAttribute('aria-pressed', String(highContrast))); if (announcement) visualStatus.textContent = announcement; }; textScaleButtons.forEach((button) => { button.addEventListener('click', () => { const currentIndex = allowedScales.indexOf(visualScale); const offset = button.dataset.textScale === 'increase' ? 1 : -1; visualScale = allowedScales[Math.max(0, Math.min(allowedScales.length - 1, currentIndex + offset))]; try { window.sessionStorage.setItem('cebraspe-text-scale', String(visualScale)); } catch {} syncVisualPreferences(`Tamanho do texto ajustado para ${Math.round(visualScale * 100)}%.`); }); }); contrastButtons.forEach((button) => { button.addEventListener('click', () => { highContrast = !highContrast; try { window.sessionStorage.setItem('cebraspe-high-contrast', String(highContrast)); } catch {} syncVisualPreferences(highContrast ? 'Contraste elevado ativado.' : 'Contraste padrão restaurado.'); }); }); syncVisualPreferences(); const setMenuOpen = (isOpen) => { menuToggle.setAttribute('aria-expanded', String(isOpen)); menuToggle.setAttribute('aria-label', isOpen ? 'Fechar menu' : 'Abrir menu'); header.classList.toggle('is-menu-open', isOpen); }; const setMegaOpen = (item, isOpen) => { item.classList.toggle('is-mega-open', isOpen); const disclosure = item.querySelector('.nav-disclosure'); const sectionName = item.querySelector('.nav-link')?.textContent.trim() || 'seção'; disclosure?.setAttribute('aria-expanded', String(isOpen)); disclosure?.setAttribute('aria-label', `${isOpen ? 'Fechar' : 'Abrir'} submenu ${sectionName}`); }; const closeAllMega = (exceptItem = null) => { window.clearTimeout(closeMegaTimer); megaItems.forEach((item) => { if (item !== exceptItem) setMegaOpen(item, false); }); if (!exceptItem || pinnedMegaItem !== exceptItem) pinnedMegaItem = null; }; const openMega = (item, pin = false) => { window.clearTimeout(closeMegaTimer); closeAllMega(item); setMegaOpen(item, true); if (pin) pinnedMegaItem = item; }; const closeMegaWithDelay = (item) => { window.clearTimeout(closeMegaTimer); closeMegaTimer = window.setTimeout(() => { if (!pinnedMegaItem) setMegaOpen(item, false); }, 260); }; const openSearch = () => { if (!searchOverlay || !searchToggle) return; searchReturnFocus = document.activeElement instanceof HTMLElement ? document.activeElement : searchToggle; closeAllMega(); setMenuOpen(false); searchOverlay.hidden = false; searchToggle.setAttribute('aria-expanded', 'true'); searchToggle.setAttribute('aria-label', 'Fechar busca'); document.body.style.overflow = 'hidden'; window.setTimeout(() => searchInput?.focus(), 0); }; const closeSearch = (returnFocus = false) => { if (!searchOverlay || !searchToggle) return; searchOverlay.hidden = true; searchToggle.setAttribute('aria-expanded', 'false'); searchToggle.setAttribute('aria-label', 'Abrir busca'); document.body.style.overflow = ''; if (returnFocus) searchReturnFocus?.focus(); searchReturnFocus = null; }; menuToggle.addEventListener('click', () => { const isOpen = menuToggle.getAttribute('aria-expanded') === 'true'; setMenuOpen(!isOpen); if (isOpen) { closeAllMega(); } else { window.setTimeout(() => primaryMenu.querySelector('a[href], button')?.focus(), 0); } }); megaItems.forEach((item) => { const trigger = item.querySelector('.nav-disclosure'); if (!trigger) return; trigger.addEventListener('click', () => { const isOpen = item.classList.contains('is-mega-open'); const isPinned = pinnedMegaItem === item; if (isOpen && isPinned) { closeAllMega(); return; } openMega(item, true); }); item.addEventListener('mouseenter', () => { if (desktopMegaCapable.matches && !pinnedMegaItem) openMega(item); }); item.addEventListener('mouseleave', () => { if (desktopMegaCapable.matches && !pinnedMegaItem) closeMegaWithDelay(item); }); }); primaryMenu.addEventListener('click', (event) => { if (event.target instanceof Element && event.target.closest('a') && !event.target.closest('.nav-disclosure')) { setMenuOpen(false); closeAllMega(); } }); document.addEventListener('click', (event) => { if (event.target instanceof Node && !primaryMenu.contains(event.target)) closeAllMega(); }); searchClose?.addEventListener('click', () => closeSearch(true)); searchOverlay?.addEventListener('click', (event) => { if (event.target === searchOverlay) closeSearch(true); if (event.target instanceof Element && event.target.closest('a')) closeSearch(); }); document.addEventListener('keydown', (event) => { if (event.key === 'Tab' && searchOverlay && !searchOverlay.hidden) { const focusable = Array.from(searchOverlay.querySelectorAll('a[href], button:not([disabled]), input:not([disabled])')); const first = focusable[0]; const last = focusable[focusable.length - 1]; if (!first || !last) { event.preventDefault(); return; } if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); } else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); } return; } if (event.key !== 'Escape') return; if (searchOverlay && !searchOverlay.hidden) { closeSearch(true); return; } const menuWasOpen = menuToggle.getAttribute('aria-expanded') === 'true'; const openItem = megaItems.find((item) => item.classList.contains('is-mega-open')); closeAllMega(); setMenuOpen(false); if (menuWasOpen) menuToggle.querySelector('a')?.focus(); else if (openItem) openItem.querySelector('.nav-disclosure a')?.focus(); }); })(); (() => { const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)'); const carousel = document.querySelector('.xpbox-page [data-carousel]'); if (carousel) { const track = carousel.querySelector('[data-carousel-track]'); const pages = Array.from(track.children); const previous = carousel.querySelector('[data-carousel-previous]'); const next = carousel.querySelector('[data-carousel-next]'); const toggle = carousel.querySelector('[data-carousel-toggle]'); const toggleLabel = carousel.querySelector('[data-carousel-toggle-label]') || document.createElement('span'); const controls = carousel.querySelector('.carousel-controls'); const position = carousel.querySelector('[data-carousel-position]'); const announcement = carousel.querySelector('[data-carousel-announcement]'); let current = 0; let timer = null; let explicitlyPaused = reducedMotion.matches; let pointerPaused = false; let focusPaused = false; let touchStartX = null; const desktopCarousel = window.matchMedia('(min-width: 641px)'); const itemsPerView = () => desktopCarousel.matches ? 5 : 1; const totalViews = () => Math.ceil(pages.length / itemsPerView()); const isPaused = () => explicitlyPaused || pointerPaused || focusPaused; const syncTimer = () => { window.clearInterval(timer); timer = null; if (!isPaused()) { timer = window.setInterval(() => showPage(current + 1, false), 9000); } toggle.dataset.state = explicitlyPaused ? 'paused' : 'playing'; toggleLabel.textContent = explicitlyPaused ? 'Reproduzir' : 'Pausar'; toggle.setAttribute('aria-label', explicitlyPaused ? 'Reproduzir carrossel' : 'Pausar carrossel'); }; const showPage = (nextIndex, manual) => { current = (nextIndex + totalViews()) % totalViews(); track.style.transform = `translateX(-${current * 100}%)`; pages.forEach((page, index) => { const firstVisible = current * itemsPerView(); const active = index >= firstVisible && index showPage(current - 1, true)); next.addEventListener('click', () => showPage(current + 1, true)); toggle.addEventListener('click', () => { explicitlyPaused = !explicitlyPaused; syncTimer(); announcement.textContent = explicitlyPaused ? 'Rotação automática pausada.' : 'Rotação automática reproduzindo.'; }); carousel.addEventListener('pointerenter', () => { pointerPaused = true; syncTimer(); }); carousel.addEventListener('pointerleave', () => { pointerPaused = false; syncTimer(); }); carousel.addEventListener('focusin', () => { focusPaused = true; syncTimer(); }); carousel.addEventListener('focusout', (event) => { if (event.relatedTarget instanceof Node && carousel.contains(event.relatedTarget)) return; focusPaused = false; syncTimer(); }); carousel.addEventListener('touchstart', (event) => { touchStartX = event.changedTouches[0]?.clientX ?? null; }, { passive: true }); carousel.addEventListener('touchend', (event) => { if (touchStartX === null) return; const distance = (event.changedTouches[0]?.clientX ?? touchStartX) - touchStartX; if (Math.abs(distance) > 48) showPage(current + (distance { if (reducedMotion.matches) explicitlyPaused = true; syncTimer(); }); desktopCarousel.addEventListener('change', () => { current = 0; showPage(0, false); syncTimer(); }); } })();}