An item with disabled cannot be moved, selected by select-all or picked from a menu, and it never reaches onChange. It stays visible, so the reader still sees that it exists.
- Disable the item rather than the whole control where you can. Transfer's own disabled turns off both panels, both buttons, both search boxes and the pager.
- A grayed row does not say why. Say it in the row or in the panel footer.
- Do not disable a row to mean “already assigned”. That is what the right panel is for.
- status="error" colors the panels' borders for form validation. Show the message that explains it next to the field.