Dans le cadre de mes nombreuses tâches quotidiennes, je devais faire en sorte qu'une application développée pour le monde PC de table soit portée sur Blackberry. Je ne m'occupe pas de l'aspect code (JSP ou JavaScript), mais seulement du volet HTML et CSS. Étant donné que j'ai fait des découvertes surprenantes, je crois qu'il est nécessaire que je les relate ici.
J'avais déjà indiqué que le Blackberry est semblable à Netscape 4 sur bien des points. Eh bien, mon impression ne s'est pas améliorée avec le temps! Dans un premier temps, outre les @import qui ne sont pas supportés, voici une liste de propriétés CSS qui sont couramment utilisées et totalement inutiles sur un Blackberry:
- margin et padding: Totalement inutilisables!
- display: sous toutes ses formes!
- width et height: utilisable, mais avec certaines valeurs seulement. Les pourcentages semblent totalement inopérationnels;
- float et son bon ami clear: n'y pensez même pas. Il en est de même pour le position;
- font-size, il fonctionne, mais pas en dessous d'une certaine limite. Il semblerait que la réduction de la police soit limitée à un certain point, ce qui est dérangeant lorsque l'on veut cacher du texte (et que les trucs habituels ne fonctionnent pas!).
- Toutes les propriétés qui sont un peu hors norme par moment: line-height, visibility...
Autres problèmes assez particuliers
Par défaut, le fureteur du Blackberry va lire le code HTML et l'interpréter tel quel. C'est à dire que un «p» sera un élément de type block, un «label» de type inline. En soi, c'est bien, même très bien. Mais le problème, c'est que pour le design d'interface via CSS, on va souvent tricher avec le display, changeant un inline pour un block et vice-versa.
Un gros problème que j'ai rencontré, c'est l'espace entre les pargraphes (p). Je sais que certains n'apprécient pas toujours, mais j'encadre les libellés («labels»), champs («input») et autres hyperliens («a») qui ont un lien sémantique commun dans un paragraphe, qui lui se retrouve dans un «fieldset». Or, cette pratique a démontré que sur le Black, les paragraphes étaient séparés d'un espace d'au moins 10 pixels. Étant donné que le défilement n'est pas toujours agréable sur le petit appareil, j'ai tenté de réduir cet espace.
Pour bien visualiser, j'ai entouré mes «p» d'une bordure rouge (très joli!). Dans un premier temps, on voit l'espace entre les deux paragraphes. Étant donné que ni le margin ou le padding n'étaient fonctionnels, j'ai dû tenter de trouver un workaround.
Quelle ne fut pas ma surprise de constater que ce problème d'espace se règle facilement en nettoyant le code HTML de toute indentation! Eh oui, retour dans le passé ou l'indentation et les espaces entre les balises causaient problème! J'ai éliminé le retour de chariot entre les deux balises «p» entourant les groupes de champs-libellés et, comme on le voit sur l'image, l'espace a diminué considérablement.
Fort de mon expérience, je peux maintenant éliminer la bordure, non? eh bien, pas vraiment! En éliminant celle-ci, c'est le retour de l'espace entre les paragraphes (là, si quelqu'un a une piste, je serais preneur!). J'ai donc ajouté une bordure de la même couleur que l'arrière plan de pour diminuer l'espace entre les paragraphes!
Ok, mais pourquoi un Blackberry, et qu'en est-il de OperaMini ou Minimo?
Là, je dois dire que je suis un peu limité dans mes choix. Le Blackberry 8880 de Rogers est celui distribué à la clientèle de l'application sur laquelle je travaille. Ce qui est bien, c'est que c'est standardisé, par contre, on est aussi limité par l'outil.
À titre d'information, j'ai testé mes pages sur un émulateur de Blackberry (celui que l'on voit sur l'image) et les résultats obtenus entre l'émulateur et l'appareil physique sont comparables.
Pour ce qui est de OperaMini, le fureteur va être testé pour voir si le support CSS et la gestion du visuel ne sera pas amélioré. Par contre, on peut s'attendre à de nouvelles sources de problèmes avec le JS et le JSP, chose qui a déjà été reglée avec le fureteur de base du Black. (N'essayez pas d'installer OperaMini sur l'émulateur, il n'aime pas ça!!)
MiniMo, le fureteur léger de Mozilla, étant donné que le projet est mort et sera remplacé par Firefoxe Mobile en 2008 ou 2009, il semble un peu risqué de tester le produit pour l'implanter sur tous les black, même s'il est supérieur...
Finalement, on peut penser, depuis la sortie du iPhone et de la réaction des concurrents, que d'ici un a deux ans, le monde de la téléphonie cellulaire et du Web mobile aura grandement évelué, que des fureteurs comme celui du Black seront chose du passé. D'ici là, on a encore droit à des maux de tête magistraux!
Mise-à-jour (11h16): Suite au commentaire d'un collègue, j'ai poussé l'investigation plus loin. Effectivement, lorsque le Blackberry accède à la page originale (CSS écran), il n'y a pas l'espacement entre les blocs. En fouillant, j'ai trouvé que c'est la propriété float qui «élimine» l'espace. Donc pas besoin de mettre de bordure, juste un float. Bon... la propriété a donc un effet, même si ce n'est pas celui auquel on devrait s'attendre!
Libellés : blackberry, firefox, operamini, web design, émulateurs

