Le vote a été construit historiquement comme corollaire d’une citoyenneté elle-même conditionnée à la nationalité. Le vote est lié à la nationalité et non au pays de résidence. Les étrangers résidant sur le territoire national ne votent pas, tandis que les Français établis à l’étranger peuvent, à certaines conditions, voter (ils disposent de représentants au Sénat, et, depuis 2008, à l’Assemblée nationale).
L'équivalence entre droit de vote et nationalité est parfois contestée. Certains hommes politiques se sont prononcés pour le droit de vote aux élections locales à tous les étrangers (François Hollande lors de la campagne pour l’élection présidentielle en 2012, comme François Mitterrand avant lui en 1981), ou s’y étaient déclarés favorables (Nicolas Sarkozy au début des années 2000), sans que cela soit suivi d’effet.
En 1992, le traité de Maastricht crée la citoyenneté européenne. La France, comme les autres États membres de l’Union européenne, autorise les étrangers ressortissants de pays membres de l’Union européenne à voter aux élections locales et européennes. Le traité a été appliqué en France à partir des élections municipales de 2001.
Les ressortissants européens ne sont cependant pas éligibles comme maires ou adjoints, car ce serait leur permettre de participer à la désignation des sénateurs, donc d’une instance dépositaire de la souveraineté nationale. Or, ils n'ont pas le droit de voter aux élections sénatoriales.
Il faut noter que le droit français tend de plus en plus à viser par "étranger" les nationaux d’un État non membre de l’Union européenne, et à ne pas considérer les ressortissants d’un autre État membre de l’Union comme étranger, mais comme citoyen européen.