UIML (User Interface Markup Language) é uma linguagem descritiva que lhe permite criar uma página Web que pode ser enviada para qualquer tipo de dispositivo de interface - por exemplo, para um PC com um display grande e um teclado ou para um "smart phone" com um display pequeno e sem teclado. A vantagem da UIML é que o conteúdo da Web pode ser criado uma vez sem compreender os tipos de dispositivos existentes e futuros para os quais o conteúdo será enviado. Um desenvolvedor de conteúdo usa a linguagem de marcação (às vezes referida como um conjunto de tags) para descrever elementos da interface do usuário, como caixas de entrada, mensagens de texto, menus e botões. Um programador pode então escrever aplicações que usam a página UIML para gerar uma página apropriada para cada tipo de dispositivo, como um PC, telefone inteligente ou dispositivo de saída de voz, para o qual o conteúdo pode precisar ser enviado.
UIML é uma aplicação da linguagem de marcação extensível (Extensible Markup Language - XML). Pode-se pensar nela como a descrição XML que descreve a estrutura de dados (nomes de campos ou elementos) de uma interface de usuário. Um dado arquivo UIML também descreve o conteúdo específico (texto, nomes de imagens, e assim por diante) nesses campos ou elementos. A UIML também permite descrever possíveis eventos de entrada do usuário e as ações resultantes. A marcação é descrita na Especificação UIML, que também inclui a definição formal do tipo de documento XML (DTD) para UIML. Como a UIML requer a especificação dos elementos da interface do usuário (muitas vezes chamados de widgets) em termos de nomes usados pelo desenvolvimento de linguagem específica tool kits (por exemplo, Java AWT ou Microsoft Foundation Classes - MFCL), você precisa identificar o toolkit específico e conhecer os nomes dos vários elementos e suas propriedades que são usados pelo toolkit.
Harmonia, a empresa de software onde a UIML foi desenvolvida, publicou-o como uma linguagem de código aberto e planeia submetê-lo a uma organização de standards depois de ter recebido comentários sobre a versão 2.0.