;(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

Candidatos em Curitiba criticam Ibope; Francischini ganha o na Justiça

Fernando Francischini, candidato do PSL à Prefeitura de Curitiba, que entrou com ação contra Ibope - Marcos Brandao/Divulgação
Fernando Francischini, candidato do PSL à Prefeitura de Curitiba, que entrou com ação contra Ibope Imagem: Marcos Brandao/Divulgação

Vinicius Boreki

Colaboração para o UOL, em Curitiba

08/10/2020 14h09Atualizada em 08/10/2020 16h05

Após a divulgação da pesquisa do Instituto Ibope, na última terça-feira (6), que colocou Rafael Greca na liderança em Curitiba, candidatos a prefeito da capital paranaense fizeram críticas e judicializaram o levantamento. Delegado Francischini (PSL) ingressou com uma ação contra o instituto. Outros adversários reclamaram em redes sociais, caso de João Arruda (MDB) e Dr. João Guilherme (Novo).

Francischini protocolou ação na quarta-feira (7) com o propósito de ter o ao sistema interno de controle da pesquisa do Ibope. De acordo com o processo, a intenção é fazer a "verificação e fiscalização da coleta de dados, incluídos os referentes à identificação dos entrevistadores e, por meio de escolha livre e aleatória de planilhas individuais, mapas ou equivalentes, confrontar e conferir os dados publicados, preservada a identidade dos respondentes".

Em decisão nesta quinta-feira (8), a juíza Melissa de Azevedo Olivas, da 178ª Zona Eleitoral, determinou que o Ibope deve, no prazo de dois dias, disponibilizar o aos documentos à coligação de Fernando Francischini. De acordo com a sentença, o descumprimento "constitui crime, punível com detenção, de seis meses a um ano, com a alternativa de prestação de serviços à comunidade pelo mesmo prazo, e multa no valor de dez mil a vinte mil UFIR".

Arruda afirmou em dois tweets, que "600 entrevistas não é uma amostra democrática" e citou o Projeto de Lei 11245/2018, do qual é autor, que visa disciplinar a realização de pesquisas de opinião pública relacionadas às eleições. A proposta aguarda parecer do relator na CCJ (Comissão de Constituição e Justiça) da Câmara. Entre outros aspectos, o texto prevê multas milionárias para pesquisas que descumpram as regras em entrevistas para a eleição presidencial (de R$ 10 milhões) e para demais cargos eletivos (de R$ 1 milhão).

O MDB havia tentado impedir a divulgação da pesquisa. Uma das alegações —negada pela Justiça Eleitoral— foi o fato de o Ibope excluir os eleitores que não votaram na última eleição. "Como se o fato da pessoa não ter votado na última eleição o impedisse de ser entrevistado, enquanto eleitor nesta eleição. As pesquisas no Brasil estão longe de ser sérias", afirmou Arruda no Twitter.

Mas ele, em seguida, se vangloria dos pontos alcançados: "Apesar do Ibope, mal feito, estamos subindo. Tecnicamente, somos quatro candidatos empatados em 2º lugar na primeira pesquisa do Ibope para a Prefeitura de Curitiba, considerada a margem de erro de 4% para mais ou para menos" (sic).

Dr. João Guilherme colocou imagens em suas redes sociais, com supostos erros cometidos pelo Instituto Ibope: uma pesquisa de outubro de 2018 que colocava Roberto Requião (MDB) como líder a uma vaga ao Senado —Flávio Arns (Rede) e Oriovisto Guimarães (Podemos) foram eleitos.

O candidato do Novo postou outra imagem de uma matéria que mencionava que Fernando Haddad (PT) venceria Jair Bolsonaro (sem partido) em um possível segundo turno, em pesquisa de setembro de 2018.

O que diz o Ibope

O Ibope se manifestou por meio de sua assessoria de imprensa sobre as críticas. De acordo com o instituto, as pesquisas "representam a população em estudo, pois todos os grupos sociais e as várias regiões geográficas aparecem na amostra em proporção muito próxima à da população pesquisada", disse em e-mail.

Em relação à crítica de João Arruda sobre a amostragem, o Ibope afirma que "não é o tamanho da amostra que determina a sua qualidade, mas a sua representatividade. A amostra reflete o perfil dos eleitores de Curitiba, tanto nas variáveis demográficas como nas geográficas", diz.

"Os resultados das nossas pesquisas refletem fielmente o que encontramos na interlocução com as pessoas que entrevistamos e independem totalmente dos interesses de quem nos contrata", prossegue.

Conforme o Ibope, a empresa segue as normas específicas para serviços de pesquisas de mercado, opinião e social (como a ABNT NBR ISO 20252) e cumpre os códigos de autorregulação e ética da Esomar (associação mundial de profissionais de pesquisa).

O instituto afirma que, se for demandado, vai prestar todas as informações solicitadas pela Justiça Eleitoral. Para o levantamento da última terça-feira, o Ibope conversou com 602 pessoas entre os dias 4 e 5 de outubro. A margem de erro é de quatro pontos percentuais, para mais ou para menos.

Contratada pela RPC, afiliada da Rede Globo no Paraná, a pesquisa tem nível de confiança estimado em 95% e foi registrada no TRE-PR (Tribunal Regional Eleitoral do Paraná) sob o número 08260/2020.