Preciso conhecer XHTML? Os erros do Adobe Digital Reader

20/03/2012
 / 

Nos cursos sobre produção de ePub que ministro pela Simplíssimo Livros, tem sempre alguém que me pergunta por que para produzir um bom arquivo no formato ePub é preciso aprender um pouco de XHTML. Para muitos designers, esta parte do processo de produção é muito tosca e lembra os velhos tempos onde a diagramação era feita de maneira manual. É natural que quem esteja acostumando a trabalhar com ferramentas visuais veja este processo como algo muito complicado e cansativo de se aprender. E talvez o seja realmente.

Entendo essas dificuldades e sempre procuro oferecer uma motivação para superar as dificuldades iniciais, mostrando como estamos no início de um novo processo de produção e as ferramentas para este serviço ainda são limitadas! Infelizmente, para produzir um bom ePub é preciso colocar a mão no código e modificá-lo usando ferramentas específicas pouco conhecidas pelos designers como o Dreamweaver, o Sigil ou softwares análogos.

Boa parte da “culpa” é dos softwares de produção como o InDesign, que ainda não fazem um bom serviço no momento de gerar o código do ePub. Aliás, às vezes cometem erros graves. Pior ainda é o fato de que o software mais popular para ler eBooks, o Adobe Digital Edition (sempre da Adobe!) comete outros erros graves no momento de apresentar o código do ePub. Vou mostrar um exemplo prático relativo às tabelas, onde vamos notar como a integração entre InDesign  e Adobe Digital Edition está longe de ser aceitável.

Tabelas

Todo mundo sabe o que é uma tabela e como ela é composta. Se bem formatada, a tabela possui três elementos: o cabeçalho, o corpo e o rodapé. Tanto no Word como no InDesign, ou em outros softwares de produção de textos, podemos criar tabelas com estes três elementos.

No InDesign podemos criar uma linha para o cabeçalho e outra para o rodapé da nossa tabela.

Criando uma tabela no InDesign podemos definir uma linha para o cabeçalho e outra para o rodapé. Não vamos esquecer de aplicar os estilos de tabela e de células, pois senão o InDesign não vai exportar para o ePub a formatação da tabela!

Três elementos de uma tabela: cabeçalho, corpo e rodapé. Aplicando os estilos de tabela e células para conservar a formatação da tabela.

Exportamos nosso arquivo para o formato ePub e podemos já visualizar o resultado no Adobe Digital Edition.

Para nossa surpresa, o rodapé aparece após o cabeçalho!

Para nossa surpresa o rodapé veio logo após o cabeçalho!! Não era isto que estávamos esperando!

Se abrirmos o nosso arquivo no iBooks, vamos perceber que a tabela aparece corretamente, pois este software leitor usa o sistema webkit que consegue decifrar corretamente o que o InDesign exportou.

Abrindo o ePub

Vamos usar o Sigil para abrir o arquivo e ver o que aconteceu.

Na linguagem XHTML, uma tabela é definida por várias tags (etiquetas) e entre elas estão três que definem as partes de uma tabela: as tags tbody (corpo da tabela), thead (cabeçalho) e tfoot (rodapé). Com um pouco de inglês não é difícil entendê-las!

Pois bem, notamos sem muita dificuldade que o InDesign exportou corretamente a tabela, seguindo as regras do W3C e colocando o tfoot (rodapé) logo após o thead (cabeçalho) e antes do tbody (corpo da tabela).

TFOOT deve aparecer antes do TBODY dentro de uma definição de TABLE assim os agentes usuários podem renderizar o rodapé antes de receber todas as (potencialmente numerosas) linhas de conteúdo. (http://www.w3.org/TR/html4/struct/tables.html#h-11.2).

Para quem quer saber como funciona uma tabela em XHTML visitem este site.

Segundo as indicações do W3C, o tfoot deve estar antes do tbody. O InDesign exportou corretamente o conteúdo segundo as regras do XHTML.

Enquanto os sistemas baseados em webkit (iBooks, Calibre, Lucidor etc.) interpretam corretamente o código e apresentam a tabela na ordem correta, o nosso amigo Adobe digital Edition nos mostra a tabela assim como ela está. Se quisermos perder um pouco de tempo, podemos testar em vários outros softwares de leitura usados pelas livrarias brasileiras como o Saraiva Reader (iPad/Android), Aldiko (Android), o novo iba (PC/MAC/iPad), e o resultado será exatamente o mesmo pois estes são baseados no Adobe, ou seja, trocam a casca mas o conteúdo é o mesmo.

A Adobe está testando uma nova versão do seu software leitor, a 1.8 (disponível neste site para quem quiser testar), mas mesmo nesta nova versão o problema persiste.

Surge uma pergunta espontânea: por que a Adobe produz um software que exporta um conteúdo que o leitor da própria Adobe não consegue mostrar corretamente? Eu sei que o problema não é o InDesign, que neste caso faz a coisa certa, mas o software leitor, porém a pergunta permanece a mesma…

Em prática…

O que fazer para resolver este problema? Sendo bem pragmático, temos duas alternativas:

a) Não usar a opção de rodapé no InDesign

b) Modificar manualmente o código da tabela (esta ultima opção significa ir contra os padrões da própria linguagem XHTML para poder resolver uma deficiência no software leitor da Adobe… mas, enfim, o mundo é assim mesmo…)

Mudando a posição do tfoot o conteúdo aparecerá corretamente no Adobe Digital Editions, ainda que contra o padrão do XHTML...

Para corrigir o código, precisamos editar o ePub e mudar a ordem da nossa tabela, manualmente… e é óbvio que para fazer isto precisamos conhecer ao menos em parte como funciona o XHTML e saber como editar de maneira correta um ePub.

Agora sim o rodapé está na posição correta: no rodapé!

Agora sim o resultado é o que estávamos esperando. Bem, ainda estão faltando as linhas da tabela e outras formatações, mas este é outro erro da família Adobe/Indesign, e deixamos para uma outra vez!

Este é apenas um exemplo entre tantos dos problemas daqueles que querem produzir um bom ePub precisa enfrentar. Óbvio, espero que daqui pouco tempo tenhamos softwares que façam tudo corretamente. Vou ficar na espera, sentado!

 

Deixe um comentário

Chat via Whats (51) 98628-2293