Il passaggio da un'interfaccia a comandi ad un'interfaccia grafica (ambiente in cui l'utente può eseguire delle operazioni basandosi principalmente sulla selezione, invece che sull'inserimento di comandi) è reso possibile dall'introduzione di metafore ed icone.
Per metafora (dal greco metapheréin, portare oltre) si intende una figura semantica per mezzo della quale si realizza un trasferimento di senso da un termine ad un altro legato al primo da un fattore di equivalenza; la metafora si ha perché i due campi semantici diversi hanno una caratteristica comune. Inoltre, la progettazione grafica implica l'uso di rappresentazioni pittoriche di un oggetto, un'azione o di qualche concetto che suggeriscono un'analogia con un altro oggetto o idea. L'icona fornisce un accesso facile, intuitivo e diretto agli elementi del sistema. Un sito usabile deve utilizzare metafore intuitive e avere icone significative e distinguibili visivamente.
Il passaggio all'interfaccia grafica è segnato dal principio "Riconoscere è più facile che ricordare" (Recognition rather than recall, Nielsen 1994 "Ten usability heuristics"): è più facile riconoscere e ricordare una cosa vedendola direttamente, piuttosto che recuperare l'informazione dalla memoria. Il modo più semplice per aiutare l'utente nel riconoscimento è quello di rendergli visibili le cose sull'interfaccia, ovvero fornirgli dei sussidi esterni che gli agevolino il ricordo.
Per agevolare il riconoscimento è importante:
sfruttare il mapping naturale (la correlazione naturale tra due cose, tra azione e risultato) che permette all'utente una manipolazione diretta degli oggetti, non lo costringe a ricordare il modo di utilizzarli o a descrivere le azioni da eseguire, anzi gli consente di eseguirle direttamente sullo schermo;
sfruttare i vincoli culturali: ogni cultura presenta un insieme di azioni che sono permesse in determinate situazioni. Le direttive del comportamento culturale sono rappresentate nella mente per mezzo di strutture cognitive che contengono, appunto, le regole e le informazioni utili per identificare la situazione e sapere come comportarsi;
utilizzare un linguaggio e una grafica adatta all'utente, che non lo costringa ad interpretazioni del significato;
rendere chiaramente visibili le azioni consentite sull'interfaccia e lo stato del sistema ad ogni momento e ad ogni azione dell'utente;
rispettare la consistenza interna, in modo che l'utente non sia costretto a ricercare continuamente informazioni all'interno della pagina Web.