Je suis confus sur la différence entre Amélioration progressive et Dégradation gracieuse. Pour moi, ils semblent être la même chose.
Pouvez-vous s'il vous plaît m'expliquer les différences entre les deux et dans quelle situation j'utiliserais l'un par rapport à l'autre?
Ils SONT presque exactement la même chose, mais ils diffèrent dans leur contexte.
Il existe une classe de navigateurs appelée "Navigateurs A Grade". Ce sont les membres de votre public type qui constituent (probablement) la majorité de vos visiteurs. Vous commencerez par une référence de ces utilisateurs. Appelez cela meilleures pratiques modernes.
Si vous voulez améliorer l'expérience de toute personne utilisant FF3.6 ou Safari 4 ou un autre développeur de whizbang tous les soirs, vous voudrez faire des choses impressionnantes comme
Ceux-ci donnent à votre site un look fou, mais ne le cassent pas. C'est amélioration progressive. Embrasser l'avenir du point de vue meilleures pratiques.
D'un autre côté, votre site de niche Nintendo attire un bon nombre d'utilisateurs d'IE5. Pauvres vous, mais vous voulez aussi vous assurer qu'ils reviennent. Vous pouvez fournir une alternative à votre comportement ajax en incluant le script ajax dans un fichier externe et si leur JS n'est pas activé, peut-être que vos liens mettent à jour la page entière. Etc. Du point de vue de meilleures pratiques modernes, vous vous assurez que certains marchés historiques sont approvisionnés par n semblant de site fonctionnel. C'est dégradation gracieuse.
Ils sont pour la plupart identiques, mais diffèrent en termes de priorité pour de nombreuses équipes de développement: PE est assez sympa si vous avez le temps, mais Gd est souvent nécessaire
Si votre site semble également bon sur tous les navigateurs, mais que certains navigateurs obtiennent, disons, des poneys dansants parce qu'ils prennent en charge les poneys dansants, alors c'est l'amélioration progressive. Cela fonctionne dans tous les navigateurs, mais certains navigateurs obtiennent quelque chose de plus. Habituellement, ce terme est appliqué à certaines fonctionnalités Javascript qui peuvent améliorer la convivialité au-delà du "HTML brut".
Si votre site ne ressemble qu'à ce que vous avez l'intention de faire sur les navigateurs qui prennent pleinement en charge, par exemple, CSS3 et IE8 - affichera la même page sans, disons, coins arrondis, alors c'est une dégradation progressive. Le site est vraiment destiné aux navigateurs de pointe, mais il est toujours utilisable dans les navigateurs plus anciens, mais pas aussi sophistiqué.
En fin de compte, ce sont vraiment les mêmes choses, considérées sous deux angles différents.
La direction à partir d'un ligne de base choisie pour chaque concept est différente.
La dégradation progressive commence à un niveau d'expérience utilisateur idéal et diminue en fonction des capacités de l'agent utilisateur jusqu'à un niveau minimum, prenant en charge les agents qui ne prennent pas en charge certaines fonctionnalités utilisées par la ligne de base.
L'amélioration progressive commence par une large expérience utilisateur minimale et augmente en fonction des capacités de l'agent utilisateur jusqu'à un niveau plus performant, prenant en charge les agents qui prennent en charge des fonctionnalités plus avancées que la ligne de base.
Je pense que l'on pourrait utiliser les deux concepts si le temps/budget le permet. Sinon, une dégradation gracieuse serait préférable.
Désolé de ressusciter quelque chose qui remonte à plus d'un an, mais j'ai senti que je pouvais apporter, en quelque sorte, ma propre opinion sur la question.
Bien que je sois d'accord avec Alex Mcp et deceze en quelque sorte, les termes "Dégradation gracieuse" et "Amélioration progressive" ont des significations légèrement différentes de ma position actuelle.
Dégradation gracieuse, la plupart du temps (à mon avis), semble être plus un bâton pour battre une application en soumission après qu'elle ait été mal construite en premier lieu selon mon expérience. Comme quelqu'un qui construit un vaste objet javascript qui fournit à l'utilisateur quelque chose de vraiment cool pour jouer, jusqu'à ce qu'un manager arrive, teste la chose et tout le monde s'exécute en criant en jetant les bras quand il est à son attention que son application ne fonctionne pas dans 35% des navigateurs. "Quelqu'un ferait mieux de se substituer à cela."
Progressive Enhancement cependant (et c'est un terme plus agréable à dire aussi) me semblerait être plus sur la construction de quelque chose qui fonctionne, au niveau d'entrée, partout, à travers les méthodes les plus basiques disponibles, pour fournir toutes les fonctionnalités dont l'utilisateur a besoin. Cela peut ensuite être ajouté à l'aide de petits assistants discrets, d'un style, etc. qui améliorent réellement l'expérience utilisateur de l'application en question, plutôt que de la rendre à peine utilisable. "Ça a l'air cool. Est-ce que ça marche dans IE6. Oh oui. C'est vrai"
Je pense que peut-être donner le style comme exemple des deux termes dans les deux réponses ci-dessus néglige en quelque sorte le véritable problème d'utilisation sous-jacent que amélioration progressive résout souvent par sa nature même, où dégradation gracieuse ignore jusqu'à ce que les choses tournent mal.
Rant over ...
La dégradation gracieuse consiste à créer votre fonctionnalité Web afin qu'elle offre un certain niveau d'expérience utilisateur dans les navigateurs plus modernes, mais elle se dégradera également gracieusement en un niveau d'utilisateur inférieur dans les navigateurs plus anciens. Ce niveau inférieur n'est pas aussi agréable à utiliser pour les visiteurs de votre site, mais il leur fournit toujours les fonctionnalités de base qu'ils ont utilisées sur votre site; les choses ne se cassent pas pour eux.
L'amélioration progressive est similaire, mais elle fait les choses dans l'autre sens. Vous commencez par établir un niveau de base d'expérience utilisateur que tous les navigateurs seront en mesure de fournir lors du rendu de votre site Web, mais vous intégrez également des fonctionnalités plus avancées qui seront automatiquement disponibles pour les navigateurs qui peuvent l'utiliser.
En d'autres termes, la dégradation gracieuse commence à partir du statu quo de la complexité et essaie de corriger pour la moindre expérience tandis que l'amélioration progressive commence à partir d'un exemple de travail très basique et permet une extension constante pour les environnements futurs. Se dégrader avec élégance signifie regarder en arrière tandis que s'améliorer progressivement signifie regarder en avant tout en gardant les pieds sur un sol ferme.
La dégradation gracieuse est la capacité d'un ordinateur, d'une machine, d'un système électronique ou d'un réseau à maintenir une fonctionnalité limitée même lorsqu'une grande partie de celle-ci a été détruite ou rendue inopérante . Le but d'une dégradation gracieuse est d'empêcher une défaillance catastrophique.
La dégradation gracieuse est une solution. C'est la pratique de créer un site Web ou une application afin qu'il offre un bon niveau d'expérience utilisateur dans les navigateurs modernes. Cependant, il se dégradera gracieusement pour ceux qui utilisent des navigateurs plus anciens. Le système peut ne pas être aussi agréable ou aussi joli, mais la fonctionnalité de base fonctionnera sur les anciens systèmes.
Un exemple simple est l'utilisation de PNG alpha-transparents 24 bits. Ces images peuvent être affichées sans problème sur les navigateurs modernes. IE5.5 et IE6 afficheraient l'image, mais les effets de transparence échoueraient (il peut être fait fonctionner si nécessaire). Les navigateurs plus anciens qui ne prennent pas en charge PNG afficheraient du texte alternatif ou un espace vide.
Les développeurs adoptant une dégradation gracieuse spécifient souvent le niveau de prise en charge de leur navigateur, par exemple navigateurs de niveau 1 (meilleure expérience) et navigateurs de niveau 2 (expérience dégradée).
L'amélioration progressive est une stratégie de conception Web qui met l'accent sur l'accessibilité, le balisage HTML sémantique et les technologies de feuille de style externe et de script. L'amélioration progressive utilise les technologies Web d'une manière en couches qui permet à tout le monde d'accéder au contenu et aux fonctionnalités de base d'une page Web, en utilisant n'importe quel navigateur ou connexion Internet, tout en fournissant une version améliorée de la page à ceux qui disposent d'un logiciel de navigation plus avancé ou d'une plus grande bande passante. .
L'amélioration progressive est un concept similaire à la dégradation gracieuse, mais en sens inverse. Le site Web ou l'application établirait une expérience utilisateur de base pour la plupart des navigateurs. Des fonctionnalités plus avancées seraient alors ajoutées lorsqu'un navigateur les prend en charge.
L'amélioration progressive ne nous oblige pas à sélectionner les navigateurs pris en charge ou à revenir aux dispositions basées sur des tableaux. Nous choisissons un niveau de technologie; c'est-à-dire que le navigateur doit prendre en charge HTML 4.01 et les demandes/réponses de page standard.
Pour revenir à notre exemple d'image, nous pourrions décider que notre application devrait être fonctionnelle dans tous les navigateurs graphiques. Nous pourrions utiliser des images GIF de qualité inférieure par défaut, mais les remplacer par des PNG 24 bits lorsque le navigateur les prend en charge.
Wikipédia: Amélioration progressive et Dégradation gracieuse (Fault_tolerance)
Source: ( Blog Sitepoint
Je trouve que cela a tendance à être attitudinal - dites-vous "d'accord, mon site fonctionne avec Lynx, les utilisateurs peuvent faire tout ce que je veux qu'ils puissent faire, maintenant ajoutons du panache", ou dites-vous "d'accord, mon site fonctionne dans Firefox, essayons maintenant de le corriger pour les personnes qui ne souhaitent pas utiliser ce/qui désactivent javascript/etc "