Understanding field level permissions

Understanding field level permissions

Can someone explain to me the difference between field level permission "visibility" and "Read Only" (image attached)?
I have a user who can't edit a field even though her "Profile" allows editing and the field permission is checked for 'visibility and uncheched for "read only" for the form in question. Which is the correct choice for a field to be editable? The knowledge base articles do not explain this well.

Thank you