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

Política na Copa: iranianos protestam por mulheres, ingleses por LGBTQIA+

Jogadores da Inglaterra ajoelharam em protesto antes do apito inicial  - Alex Pantling - The FA/The FA via Getty Images
Jogadores da Inglaterra ajoelharam em protesto antes do apito inicial Imagem: Alex Pantling - The FA/The FA via Getty Images

Rodrigo Mattos

21/11/2022 12h28

Classificação e Jogos

O jogo Inglaterra e Irã foi tomado por pautas políticas envolvendo os dois times. Da parte iraniana, os jogadores e boa parte da torcida iraniana mostrou apoiaram ao protestos de mulheres por mais liberdade. Do lado inglês, houve manifestação dos jogadores ingleses antes do jogo pela igualdade de tratamento do público LGBTQIA+ no Qatar, mas não foi usada a vetada braçadeira de arco-íris.

Antes da partida, a discussão política já tinha feito parte da partida. A Fifa tomou uma decisão antes da Copa de criar braçadeiras padrão para jogadores com o objetivo de enfraquecer a campanha pelos direitos da LGBTQIA+. Havia oito capitães de seleções europeias dispostos a usar o artigo.

A pressão da Fifa gerou o temor entre as seleções de que pudesse haver punição com cartões amarelos dos capitães. Com isso, as federações europeias soltaram um comunicado antes do jogo explicando que não usariam as braçadeiras. Isso causou contrariedade entre os dirigentes europeus.

Pouco antes do jogo, os jogadores da Inglaterra se ajoelharam em protesto. É uma manifestação normalmente usada contra o racismo, mas os ingleses tinham o objetivo de ressaltar a causa de defesa de pedido de tratamento igual para a população LGBTQIA+. Isso porque o Qatar, país-sede da Copa, tem leis contra a comunidade.

Já o time iraniano não cantou o hino do país. Aparentemente isso foi feito em protesto contra a pressão pelo governo do Irã da manifestação pelos direitos das mulheres no Irão. O assassinato da iraniana Masha Amini sob custódia da política gerou protestos generalizados no país.

Nas arquibancadas, iranianos usavam camisas com o slogan "Women Life Freedom". No intervalo, foi aberta uma grande bandeira com a frase. Não houve repressão da Fifa.