Aloft
Why doesn't Aloft show buffs/debuffs on the target nameplate?
Take a look at the PlateBuffs addon. It works very well.

The rest of this is primarily of "historical" interest.

In basic terms: in order to do this, Aloft needs to be able to obtain buff/debuff data for a target, and uniquely identify the nameplate on which the buff/debuff data should be displayed.

Obtaining buff/debuff data requires a unitid (i.e. "target"). As well, Aloft can always identify the nameplate of the player's current target, if visible (via nameplate alpha). So this feature would be easiest to supply for the player's current target.

In addition to the player's current target, Aloft could show buffs/debuffs on the nameplates of friendly groupmembers, and Aloft could show buffs/debuffs generally on the nameplates of hostile PvE units if a) a friendly groupmember (at least a pet) has the unit targeted (for the unitid), and b) the hostile unit has a raid target assignment (icon, used to uniquely identify the nameplate). Hostile players would require that a friendly groupmember (at least a pet) have the unit targeted (for the unitid).

Aloft will probably have this feature at some point, but there is no current ETA.

Given this "player's current target" requirement, to some extent this feature becomes more consistent with the functionality of a "unit frame", or "HUD", or "timer bar" addon.

Some suggestions for addons that (that Acapela has tried) that can provide these features without taking up too much additional screen real-estate (feel free to experiment):
  • statusbars2 (a "lightweight" HUD).
  • AlarmHUD (a "lightweight" HUD).
  • IceHUD (a modular HUD)
  • DoTimer (featureful timer bars, has a mouseover capability).
  • ClassTimer (modular timer bars).
  • TargetBuffSort (severely out of date, no longer functional, but originally quite good; hopefully someone will take it over and update it).

There are also numerous relevant class-specific addons, too many to list.

Background on possible solution (very detailed):

Collecting buff/debuff information on a unit ultimately requires a unitid, whether directly through UnitBuff()/UnitDebuff()/UnitAura(), or indirectly by watching the combat log (which requires a GUID, which is obtained via UnitGUID()). However, there is nothing in Blizzard nameplates, nor in the Blizzard API, that can easily/directly associate a nameplate with a unitid. Aloft has to jump through a lot of hoops to do what little it can in this way (like iterating through all possible groupmember unitids, tracking data against the nameplate on mouseover, and/or tracking target changes among friendly group members and collecting data about those targets, like unit names and raid target assignments).

Also required is a way to uniquely identify nameplates and associate them with specific units.

Aloft can always identify the player's current target nameplate by iterating through all visible nameplates for the one with the correct alpha setting. So, some sort of buff/debuff graphics for the player's target (if any) should always be possible.

PvP targets (flagged enemy players) have unique unit names, which are available via data in the nameplate (again, found by iterating through all visible nameplates), and if Blizzards "Combat>Class Colors in Nameplates" option is enabled, the nameplate health bar will use a class color (rather than the default hostile "red"), which can be used to identify a nameplate as belonging to a hostile player (as well as identifying that player's class). So, identifying a hostile PC nameplate should always be possible, basically based on unit name.

Friendly PC nameplates are similar: they are by default "blue", and will have a unique name.

(Aloft does not currently take realm into account in battlegrounds, so if two player characters, from different realms, with the same name are visible at the same time, there could be some confusion.)

But it is possible for multiple hostile PvE units to be visible, all with the same name/level, and there is no simple way to differentiate among them. Blizzard provides absolutely no help (we really need a way to associate a nameplate with a GUID, but no such mechanism exists).

The best mechanism I have been able to come up with is raid target assignment (i.e. icon, if any), which can be collected via a target unitid using GetRaidTargetIndex() (such as when the player's target changes, or when a groupmember's target changes), and its presence detected graphically on nameplates and "reverse engineered" (in terms of which specific icon is in use) via GetTexCoords().

Possible solution:

Aloft can track groupmember targets as they change, and record the GUIDs for those target units. Aloft can also track and record raid target assignments as they are made, and record the GUIDs associated with those target units. Then, when a nameplate appears, Aloft can detect the presence of visible icon graphics, and reverse engineer and identify which icon is in use on that nameplate.

Once the raid target assignment has been identified on a nameplate, Aloft can connect the dots, using unit GUID, to obtain the unitid of a friendly groupmember (if any) that is targeting the unit, and collect and display the required buff/debuff information, on the correct nameplate.