L'autocompletamento (in inglese autocompletion), in informatica, è una funzionalità offerta da molti programmi di videoscrittura, IDE e browser. È la capacità di intuire automaticamente quale parola (o espressione) sta venendo digitata da tastiera, solo in base alle prime lettere.
La parola intuita compare a video come suggerimento, e l'utente può confermarla (in genere premendo un tasto come spazio o invio) oppure continuare a digitare normalmente nel caso la parola desiderata fosse in realtà un'altra.
L'autocompletamento è applicabile efficacemente in tutti quei casi in cui il numero di possibili parole da autocompletare è limitato, tipicamente nei linguaggi di programmazione, nei documenti tecnici, nella digitazione di indirizzi (intuibili in base a una rubrica e/o a una cronologia). È diffusa ad esempio nelle distribuzioni Linux con la digitazione dei comandi da terminale tramite il tasto TAB.
Lo scopo originale del software di predizione delle parole era quello di aiutare le persone con disabilità fisiche ad aumentare la velocità di battitura[1], nonché di aiutarle a ridurre il numero di battute necessarie per completare una parola o una frase[2].
La stenografia, chiamata anche Autoreplace, è una funzione correlata che implica la sostituzione automatica di una particolare stringa con un'altra, di solito una più lunga e più difficile da digitare. Questo può anche correggere semplici errori di battitura, come trasformare "csa" in "casa". Diversi programmi di completamento automatico, autonomi o integrati in editor di testo, basati su elenchi di parole, includono anche una funzione abbreviata per frasi usate di frequente.
Una funzionalità dell'editor di testo, simile al completamento delle parole, che completa le parole (o intere frasi) in base al contesto corrente e al contesto di altre parole simili all'interno dello stesso documento o di un set di dati di addestramento
Quando l'utente inizia una riga che inizia con una frase usata di frequente, l'editor la completa automaticamente, fino alla posizione in cui le righe simili differiscono, oppure propone un elenco di continuazioni comuni.
Nelle applicazioni sono strumenti autonomi che aggiungono funzionalità di completamento automatico a un'applicazione esistente o a tutte le applicazioni esistenti di un sistema operativo, in base al contesto corrente.
Nei browser Web il completamento automatico viene eseguito nella barra degli indirizzi (utilizzando gli elementi della cronologia del browser) e nelle caselle di testo nelle pagine utilizzate di frequente, come la casella di ricerca di un motore di ricerca. Il completamento automatico per gli indirizzi web è particolarmente conveniente perché gli indirizzi completi sono spesso lunghi e difficili da digitare correttamente. HTML 5 ha un attributo <form>
di completamento automatico[3].
<form action="/action_page.php" method="get" autocomplete="on">
<label for="fname">Nome:</label>
<input type="text" id="fname" name="fname"><br/><br/>
<label for="email">Email:</label>
<input type="text" id="email" name="email"><br/><br/>
<input type="submit">
</form>
Il completamento automatico viene generalmente utilizzato per inserire gli indirizzi di posta elettronica dei destinatari previsti. In genere esiste un numero limitato di indirizzi e-mail utilizzati di frequente, quindi è relativamente facile utilizzare il completamento automatico per selezionarli. Come gli indirizzi web, gli indirizzi e-mail sono spesso lunghi, quindi digitarli completamente è scomodo[4].
Nei motori di ricerca le funzionalità dell'interfaccia utente di completamento automatico forniscono agli utenti query o risultati suggeriti mentre digitano la query nella casella di ricerca. Questo è anche comunemente chiamato autosuggest o ricerca incrementale[5].
In un editor di codice sorgente il completamento automatico è notevolmente semplificato dalla struttura regolare dei linguaggi di programmazione. Di solito c'è un numero limitato di parole significative nel contesto o nello spazio dei nomi corrente, come i nomi di variabili e funzioni[6].
Il completamento automatico negli strumenti di query del database consente all'utente di completare automaticamente i nomi delle tabelle in un'istruzione SQL e i nomi delle colonne delle tabelle a cui si fa riferimento nell'istruzione SQL[7].
In molti programmi di videoscrittura il completamento automatico riduce la quantità di tempo impiegato per digitare parole e frasi ripetitive[8]. Il materiale di origine per il completamento automatico viene raccolto dal resto del documento corrente o da un elenco di parole comuni definite dall'utente. Apache OpenOffice, Calligra Suite, LibreOffice e Microsoft Office includono il supporto per questo tipo di completamento automatico, così come gli editor di testo avanzati come Emacs e Vim.
In un interprete a riga di comando, come ad esempio PowerShell, il completamento automatico dei nomi dei comandi e nomi di file può essere realizzato tenendo traccia di tutte le possibili nomi di cose a cui l'utente può accedere[9].