Skip to main content

Comment une option d’accessibilité est-elle devenue un effet de mode ?

Il y a quelques années, avoir un thème sombre, ou à haut contraste ce n’était pas très courant et cela se destinait surtout à améliorer l’accessibilité.

Dans certains cas, c’était le design à défaut. Je pense surtout à Windows Phone et Windows Mobile qui étaient beaucoup critiqués pour cela. Ils étaient aussi critiqués pour leurs applications trop sombres qui se ressemblaient soi-disant toutes. Maintenant qu’iOS et Androïde sont dans la course aux modes sombre et qu’il devient difficile de différencier une même application sur les deux plateformes, c’est le monde à l’envers. Belle ironie dont l’accessibilité sort peut-être grandie.

Maintenant, cela devient un effet de mode. Celui qui n’a pas son mode sombre n’est plus dans la course.

Qui ne s’est pas fait charrier, car il utilisait encore le thème gris clair ou bleu de Visual Studio ?

Oui, « thème sombre » et « thème à haut contraste », ce n’est pas vraiment la même chose. Mais plus les thèmes sombres évoluent et plus ils tendent vers le haut contraste. Souvent pour des raisons techniques.

Exemple : Sur mobile avec les écrans OLED où l’on va privilégier le fond noir pour réduire l’utilisation de la batterie.

Conclusion

Progressivement on gagne en contraste et en accessibilité, car le design sombre a fait son petit chemin.


PS : Oui ce site a un thème sombre. Un vrai thème haut contraste est en préparation.

Jérémy Jeanson

Créer une base de données à partir d’un contexte migré de EF6 à EF Core

Si l’on suit à la lettre le processus de conversion d’un contexte Entity Framework 6 (EF 6) existant vers Entity Framework Core (EF Core), la création d’une nouvelle base de données est impossible.

Petit rappel de la documentation :

Existing migrations

There isn't really a feasible way to port existing EF6 migrations to EF Core.

If possible, it is best to assume that all previous migrations from EF6 have been applied to the database and then start migrating the schema from that point using EF Core. To do this, you would use the Add-Migration command to add a migration once the model is ported to EF Core. You would then remove all code from the Up and Down methods of the scaffolded migration. Subsequent migrations will compare to the model when that initial migration was scaffolded.

Source : https://docs.microsoft.com/en-us/ef/efcore-and-ef6/porting/port-code

Dans le cas d’une nouvelle base de données :

  • Les méthodes Up et Down de votre première migration étant vide, EF ne créera pas les tables.

Dans le cas d’une base de données existante :

  • Si Up et Down sont vides, tout va bien. Si vous laissez le code de ces méthodes UP et Down par défaut, EF tentera de les créer, même sur une base existante.

Votre projet ne peut donc pas être utilisé pour ces deux cas.

Comment s’en sortir ?

Heureusement il existe une solution pour créer une migration qui peut répondre aux deux exigences en même temps. Pour cela, il faut regarder de près les options de la classe MigrationBuilder qui est passée en argument des méthodes Up et Down de nos migrations :

  • MigrationBuilder n’inclut pas de méthode pour tester l’existence de tables. (Zut, cela aurait été bien pratique).
  • MigrationBuilder dispose d’une méthode qui est en mesure de lancer des commandes SQL (vous voyez déjà où je veux en venir ?).
  • MigrationBuilder permet d’identifier le SGBD utilisé (pratique si on veut utiliser des commandes SQL propres à un SGBD ou un autre).

SQL sait créer des tables quand elle n’existe pas. On peut s’appuyer sur lui pour faire notre migration.

Pour cela, il suffit de connaitre la structure SQL de ses tables, et la syntaxe SQL propre à son SGBD.

Exemple : dans ce cas, j’utilise SQL Server pour créer une table Categories si elle n’existe pas.


public partial class Initialization : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.Sql(@"IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Categories' AND xtype='U')
            BEGIN
            CREATE TABLE [Categories] (
            [Id]   INT           IDENTITY (1, 1) NOT NULL,
            [Name] NVARCHAR (40) NULL,
            CONSTRAINT [PK_dbo.Categories] PRIMARY KEY CLUSTERED ([Id] ASC))
            END");
    }
    
    protected override void Down(MigrationBuilder migrationBuilder){}
}

Bien entendu, il faudra procéder ainsi pour toutes les tables de votre modèle. Ce travail peut sembler laborieux, mais il n’en est rien. J’ai déjà utilisé cette approche pour deux projets sans le moindre problème.

Conclusion

C’est dans les vieux pots que l’on fait les meilleures soupes. Vous pensiez vraiment qu’en 2019 on créerait des bases de données sans le moindre code SQL ;)

Jérémy Jeanson

6 ans après Windows Phone, l’AR arrive enfin dans Google Map ?

Attention, il s’agit là clairement d’un petit billet d’humour.

Depuis la semaine dernière, nombre de personnes s’émerveillent, car la réalité augmentée arrive sur Google Map. “Ououuuu !”

Pour le moment ce n’est pas disponible pour tout le monde, mais cela ne saurait tarder.

Bien évidemment, une révolution ne peut arriver sans qu’Appel n’apporte sa réponse. Apple Map sur iOs devrait donc y avoir droit aussi. Un jour ;)

Pour Windows Mobile 10, laissez tomber, vu qu’il n’y a plus de nouvelles fonctionnalités…

Oups, je dis une bêtise. On avait déjà ça sur mon Lumia 820, fin 2012 (Windows Phone 8, pour rappel).

Nokia City Lens
Conférence City Lens for Windows Phone 8 via Windows Central


Petit bonus : En 2019 Google Map affiche maintenant les limitations de vitesse… aux États-Unis Ouaouuuuu ! Comme Windows Phone et Windows Mobile à leurs lancements respectifs... Zut, je dis encore une bêtise, ils le faisaient aussi en France. Snif.

Moralité

Sortez vos Windows Phone 8 et Windows Mobile 10, vous allez épater la galerie!

Jérémy Jeanson

Un seul navigateur supporte 100% des possibilités d’accessibilité fournie par HTML5 !

Lors de ma veille technique, je suis tombé sur une information qui m’a fait grincer des dents. Aujourd’hui, seul Edge supporterait l’ensemble des possibilités offertes par HTML 5 concernant l’accessibilité. Source : https://www.html5accessibility.com/

Accessibility-browsers


Si l’on s’arrête aux principaux navigateurs, 1 sur 5, ce n’est pas énorme. Certains diront que le comparatif ne se fait pas sur les toutes dernières versions des navigateurs. C’est vrai. Malheureusement quand on regarde les logs de ces navigateurs, on ne retrouve pas très souvent de nouveautés liées à l’accessibilité.

Mais que ce qui me chagrine le plus dans tout cela, c’est que Edge va utiliser Chromium.

Un petit pas en avant pour le navigateur, un grand pas en arrière pour l’accessibilité ?

Jérémy Jeanson

This project is 'MAT' enabled, but no XLIFF translation files were found in the project.

Voilà un warning à ne pas prendre à la légère. Celui-ci ne peut se produire que si vous utilisez le Multilingual App Toolkit (MAT). Ce warning, en fait est le signe d’un gros problème dans votre application. MAT ne trouvant pas de fichier XLIFF (ou XLIF) dans votre projet, il ne procédera pas à la mise à jour de vos fichiers de ressources lors de la compilation du projet.

Ce warning est donc plus une erreur critique qu’un simple avertissement.

Cookies Cookie Policy

This website uses cookies to allow us to enhance your browsing experience (accessibility settings). If you continue to use this website you agree to our use of cookies.