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

Clodoaldo Silva

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Clodoaldo: Não precisamos de atores sem deficiência para nos representar

Cena do filme "Perdoai-nos as Nossas Ofensas", disponível na Netflix - Reprodução/Netflix
Cena do filme "Perdoai-nos as Nossas Ofensas", disponível na Netflix Imagem: Reprodução/Netflix

24/02/2022 17h20

Assisti ao "Perdoai-nos as Nossas Ofensas", um curta-metragem lançado recentemente na Netflix. O curta retrata um garoto com deficiência física que é perseguido por soldados nazistas após Hitler decretar o Aktion T4 (um programa secreto terrível de eutanásia que visava eliminar pessoas não desejadas).

Para mim o filme serviu para alertar para mais uma parte da história que retrata a negação/eliminação das pessoas com deficiência. Apesar de sabermos que o nazismo aterrorizou milhões de vidas, esse curta a a ser necessário, já que atende um dos preceitos do cinema, que é não esconder o ado.

Outra questão importante que me atraiu no filme foi que ele não utilizou cripface (quando atores sem deficiência interpretam pessoas com deficiência). O ator principal, Knox Gibson, é um garotinho com má formação do braço direito.

Não existem melhores atores do que nós mesmos para sermos personagens nos cinemas, no teatro ou na dança. Por isso, nós pessoas com deficiência, também lutamos por espaço para atuar em filmes. Esse também é um lugar que está com as portas fechadas para nós.

Uma iniciativa do Oscar poderá ajudar a mudar a nossa realidade nas produções cinematográficas. A premiação quer aumentar a diversidade da indústria. Para isso, os filmes que quiserem concorrer à principal categoria do Oscar devem atender alguns critérios, como incluir grupos poucos representados em cargos de liderança nas distribuidoras, produtoras, área de marketing e treinamento.

Sei que ainda estamos no início de uma longa jornada, já que essa luta não é só nossa. Para quem não sabe, até 2016 ocorreram 51 cerimônias, nas quais nenhuma pessoa negra tinha sido indicada para quaisquer categorias. O movimento #OscarSoWhite denunciou, em 2016, a ausência de pessoas negras na Academia.

Desde então, vemos alguns avanços. No Oscar de 2021, pela primeira vez duas mulheres foram indicadas ao prêmio de melhor direção e uma quantidade numerosa de cineastas e atores negros disputaram os maiores títulos da noite. E, neste ano, a diversidade tomou conta de categorias pertinentes aos bastidores como produtores e mais profissionais da indústria.

Mas um dos destaques dos indicados de 2022 é "No Ritmo do Coração", que se torna um marco de elenco predominantemente surdo já indicado para Melhor Filme. Troy Kotysur, um dos atores surdos que trabalha no filme, se tornou o primeiro homem surdo a ser indicado a um Oscar. Ele concorre à categoria de Melhor Ator Coadjuvante por seu trabalho ao lado da primeira atriz surda já indicada ao prêmio, Marlee Matlin, que venceu o Oscar de Melhor Atriz por "Filhos do Silêncio" (1986).

É importante assistir "Perdoai-nos as Nossas Ofensas" e se você não viu "No Ritmo do Coração", eu super indico. Nos dois filmes não há cripface. Além de fazer história com o elenco de pessoas surdas, o drama indicado ao Oscar de Melhor Filme é comunicado com mais de 50% do tempo em libras. Vale conferir!

Excelente quinta-feira e abraços aquáticos para todos!