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

Taiwan registra casamentos gays, em dia histórico para a Ásia

O primeiro casal gay de Taiwan, Shane Lin (esq.) e Marc Yuan - AFP
O primeiro casal gay de Taiwan, Shane Lin (esq.) e Marc Yuan Imagem: AFP

24/05/2019 17h05

Taiwan ou a aceitar nesta sexta-feira (24) o casamento entre pessoas do mesmo sexo, um fato sem precedentes na Ásia, com as repartições públicas recebendo os primeiros casais interessados em registrar sua união.

Shane Lin e Marc Yuan, dois jovens que se conheceram no colégio, foram os primeiros a chegar a uma repartição pública da capital, Taipé, onde se beijaram e posaram para fotos com familiares e amigos antes de firmar a certidão de casamento.

Logo em seguida, chegaram a autora teatral LiYing Chien e sua companheira, uma desenhista conhecida como Cynical Chick, que am o certidão de casamento.

Taiwan se tornou, na semana ada, o primeiro país da Ásia a legalizar o casamento entre pessoas do mesmo sexo, após quase três décadas de esforços da comunidade homossexual para conseguir a legalização de seus direitos.

A questão, porém, permanece polêmica nesse país conservador, especialmente fora das cidades e entre as gerações de idade avançada.

Espera-se que cerca de 300 casais gays se apresentem a repartições públicas para registrar sua união, sendo 150 na cidade de Taipé.

Inclusive a sede do governo municipal organiza uma cerimônia coletiva de casamentos em um famoso edifício da capital.

Preparativos em andamento

Entre os que se preparam para a cerimônia está a assistente social Huang Mei-yu, que espera se casar em breve com sua namorada, You Ya-ting.

"Estou muito nervosa, embora tenhamos feito uma cerimônia em 2012", disse à AFP. Em seu caso, tratou-se de uma bênção religiosa que as duas receberam de parte de um monge budista.

"Mas também estou muito feliz já que tudo saiu antes do esperado. Pensei que teria que esperar outros 10 anos", comentou.

O reconhecimento legal de sua relação, disse Huang, é um o fundamental e pode impulsar outras pessoas a assumirem seus companheiros publicamente.

"Agora que o casamento entre pessoas do mesmo sexo é reconhecido legalmente, acredito que meus pais finalmente sentirão que isto é real e pararão de insistir para que eu me case com um homem", disse.

Para o ativista pelos direitos dos homossexuais Chi Chia-wei, os casamentos desta sexta são a conclusão de três décadas de uma longa luta para persuadir os governos a impulsarem uma mudança na legislação.

Foi Chi que apresentou a petição formal ante a Corte Constitucional de Taiwan, um processo que terminou em 2017 quando o tribunal determinou que negar aos casais homossexuais o direito a se casar era inconstitucional.

Na semana ada, depois de dois anos dessa sentença, finalmente o parlamento aprovou uma lei que permite a casais do mesmo sexo formalizarem uma "união exclusiva permanente" e solicitarem "registro de casamento" ante repartições públicas.

"Estou feliz de ver que agora casais do mesmo sexo podem registrar sua relação. Me sinto honrado de ser testemunha destes casamentos", comentou.

Nos dez últimos anos, Taiwan foi um dos países mais progressistas da Ásia em termos de direitos dos homossexuais e organizou o maior desfile do orgulho gay do continente.

No entanto, a ilha que vive separada da China desde 1949 é também uma sociedade altamente conservadora, com grupos de pressão religiosos muito poderosos.