What you are describing is what is called a domain. [Domains][1] exist in geodatabases but not shapefiles.  

You basically create a field (numeric or text) which stores the value but each value has a description. So for example you have a numeric field of type SHORT called "quality". The domain would be 1 = good, 2 = OK, 3 = bad. You assign that domain to that field. So when the user edits the attribute table and clicks in the cell they will be offered up a choice of good, OK or bad. What gets written into the table behind the scenes is either 1, 2, or 3.

Search the help file for Domains


  [1]: http://desktop.arcgis.com/en/arcmap/10.3/manage-data/geodatabases/an-overview-of-attribute-domains.htm