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

Violência machista, a outra epidemia na África do Sul

Na África do Sul, a linha nacional de emergência para mulheres e crianças maltratadas está saturada desde o início do confinamento em 27 de março - Getty Images
Na África do Sul, a linha nacional de emergência para mulheres e crianças maltratadas está saturada desde o início do confinamento em 27 de março Imagem: Getty Images

29/04/2020 15h48

A vida de Sandy (nome alterado) mudou drasticamente no fim de março, quando começou o confinamento devido ao coronavírus. "Meu marido ameaçou me destruir. E a situação não parou de piorar", conta a cabeleireira sul-africana de 42 anos, vítima da violência machista.

Seu caso não é isolado. Na África do Sul, a linha nacional de emergência para mulheres e crianças maltratadas está saturada desde o início do confinamento em 27 de março: mais de 12.000 ligações nas três primeiras semanas, o dobro do habitual.

Além de istrar a pandemia de coronavírus, que matou 93 pessoas, o país "combate outra epidemia mortal, a da violência machista e doméstica", resume a publicação on-line Daily Maverick.

Na África do Sul uma mulher é assassinada a cada três horas e, por dia, a polícia registra 110 denúncias de estupro, de acordo com as estatísticas anuais.

Uma situação agravada com o confinamento provocado pela pandemia de covid-19.

Muitas mulheres estão presas com seus agressores, explica Kathy Cronje, diretora da associação Safe House, que recebe mulheres agredidas.

"Para os agressores natos, o confinamento é benéfico", afirma.

Nos bairros mais pobres, as casas estão superlotadas, com poucos cômodos. Em confinamento você não pode pedir que as crianças saiam para brincar na rua", afirma Shaheda Omar, diretora da fundação Teddy Bear para menores.

"Como todos os casais, aconteciam brigas e divergências", relata Sandy. "Mas quando você está confinada, não pode pegar o carro para tomar ar. Começa uma bola de neve que se transforma em uma explosão vulcânica".

O presidente sul-africano, Cyril Ramaphosa, considerou "preocupante que durante um período tão difícil "mulheres e meninas estejam aterrorizadas em suas casas e sejam obrigadas a fazer ligações de emergência desesperadas".

O secretário-geral da ONU, Antonio Guterres, denunciou no início de abril um "surto horrível de violência" com a situação de confinamento em vários países.

A fundação Tears, que ajuda vítimas da violência machista, registrou um aumento de 30% das ligações em três semanas.

Mas a organização considera esta apenas a ponta do iceberg. "Em confinamento, as vítimas não podem falar de maneira livre", explica Mara Glennie, presidente da Tears.

As mulheres que desejam abandonar a residência conjugal enfrentam obstáculos durante o período. Elas precisam de uma permissão judicial para o deslocamento, denuncia Mara Glennie.

"A condição do confinamento provoca o sofrimento em silêncio", lamenta a ativista Brenda Muse-Pajibo.

Quando o isolamento começou no país, a ONG Safe House ficou surpresa com o número reduzido de ligações.

"Talvez o medo do coronavírus fosse maior que o de permanecer em casa. Mas quando o presidente anunciou uma prorrogação do confinamento (em 9 de abril), as mulheres afirmaram: não podemos aguentar mais", afirma Kathy Cronje.

A partir daquele dia, a ONG viu uma explosão dos pedidos urgentes de alojamento.