;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Eleições 2022: Twitter anuncia "pacotão" de medidas para combater fake news

Alan Santos/PR
Imagem: Alan Santos/PR

Da Redação

Em São Paulo

20/07/2022 11h49Atualizada em 20/07/2022 15h50

O Twitter anunciou nesta quarta-feira (20) novas iniciativas para as eleições 2022, focadas principalmente em estimular a conversa em torno do tema e combater a desinformação.

A etiqueta que denuncia tuítes como "Enganoso", vigente já desde abril, continuará levando para uma página de Moments específica sobre o tema, com conteúdos de fontes confiáveis, selecionados pela equipe de curadoria interna da plataforma. Agora, todos esses Moments ficarão reunidos na nova aba "Eleições 2022".

Estes Moments serão alguns dos recursos de "alfabetização midiática", que, segundo a empresa, visam ensinar o usuário a detectar fake news. Os próprios perfis oficiais do Twitter iniciarão uma campanha com esse mesmo objetivo, em agosto.

No mesmo mês, será ativado um chatbot em parceria com a organização da sociedade civil Politize, para tirar as principais dúvidas do publico. A conversa poderá ser iniciada com uma DM para o perfil da organização.

Checagem e curadoria

A identificação dos conteúdos enganosos será feita de maneira híbrida, pelo algoritmo da empresa e por uma equipe de jornalistas, trabalhando 24 horas por dia, 7 dias da semana.

Daniele Fontes, líder de Políticas Públicas, não confirmou quantos profissionais compõem a equipe, mas ressaltou que "são brasileiros, falam português e entendem o contexto brasileiro."

A empresa também deu apoio financeiro às agências de checagem Aos Fatos e Agência Lupa.

O TSE entra na jogada

O líder de curadoria na América Latina Leonardo Mota anunciou uma ampliação da parceria oficial com o Tribunal Superior Eleitoral, também para tirar dúvidas dos eleitores.

Um dos recursos é um aviso de busca: questões relacionadas a confiabilidade das urnas ou biometria, por exemplo, levarão diretamente a Moments produzidos pelo Twitter em conjunto com o órgão federal.

Atualmente, 8 Moments já foram criados, reunindo informações a respeito de regularização do título de eleitor, voto em trânsito e segurança do processo eleitoral, entre outros temas.

Mais conversas

Na interface, a principal mudança será uma nova aba na seção "Explorar", chamada "Eleições 2022". Ali estarão concentrados os tuítes e Moments sobre os assuntos mais relevantes do momento,

Para eleitores de 10 estados, a aba terá uma atualização local. "Um eleitor em Minas Gerais vai encontrar ali informações específicas sobre a disputa no seu estado", explica.

Os estados são Amazonas, Bahia, Ceará, Goiás, Minas Gerais, Paraná, Pernambuco, Rio de Janeiro, Rio Grande do Sul e São Paulo.

A aba Eleições 2022 também contará com transmissões ao vivo e listas com contas confiáveis que falem sobre política.

ERRATA: A versão anterior deste texto atestava que a conexão entre a etiqueta de conteúdo Enganoso e os Moments foi lançada hoje, mas ela já existia. Também afirmava que o apoio da plataforma às agências Lupa e Aos Fatos implicaria mais alcance nas postagens, mas é apenas um apoio financeiro. As informações já foram corrigidas.