Procedure 1 is the preferred procedure and assumes that content authors have access to the code that generates the viewport content.However there may be instances where this may not be possible (eg: in certain content management systems, application environments such as django or ruby-on-rails, or content generated through scripting languages such as AJAX or PHP that are generated by third parties